2014-12-16 2 views
0

Мы разработали функцию в классе, чтобы проверить, является ли класс нильпотентности группой или нет суммой из ее p-силов. Оригинал был первым ниже, без линии n:=NilpotencyClass(G). Я получил странный результат, как вы увидите ниже. Учитель получил другой странный результат: 3 1. Но группа G не была абелевой, поэтому мы бы нашли неабелеву группу нильпотентных групп 1, что абсурдно. Затем мы попытались изолировать функцию, также потому, что мой одноклассник правильно работал. Это решило проблему. Интересуясь этой тайной, я попытался изолировать проблему и обнаружил, что она вышла из функции. Я попытался вычислить возвращенный NilpotencyClass в начале функции, и он сработал. Если я этого не сделаю, даже вне функции я все равно получаю NilpotencyClass(G)=32767! Поэтому у меня есть следующий код:MAGMA NilpotencyClass, просчитанный

TestNilpotencyClass := function(G) 
    n:=NilpotencyClass(G); 
    if not IsNilpotent(G) then 
     return 0; 
    end if; 
    N := #G; 
    somma := 0; 
    for pn in Factorisation(N) do 
     p := pn[1]; 
     P := SylowSubgroup(G,p); 
     c := NilpotencyClass(P); 
     somma +:= c; 
    end for; 
    return somma, n; 
end function; 

TestNilpotencyClassb := function(G) 
    if not IsNilpotent(G) then 
     return 0; 
    end if; 
    NilpotencyClass(G); 
    N := #G; 
    somma := 0; 
    for pn in Factorisation(N) do 
     p := pn[1]; 
     P := SylowSubgroup(G,p); 
     c := NilpotencyClass(P); 
     somma +:= c; 
    end for; 
    return somma, NilpotencyClass(G); 
end function; 

TestNilpotencyClassc := function(G) 
    if (not IsNilpotent(G)) then 
     return 0; 
    end if; 
    NilpotencyClass(G); 
    N := #G; 
    somma := 0; 
    for pn in Factorisation(N) do 
     p := pn[1]; 
     P := SylowSubgroup(G,p); 
     c := NilpotencyClass(P); 
     somma +:= c; 
    end for; 
    return somma, NilpotencyClass(G); 
end function; 

TestNilpotencyClassd := function(G) 
    if (not (IsNilpotent(G))) then 
     return 0; 
    end if; 
    NilpotencyClass(G); 
    N := #G; 
    somma := 0; 
    for pn in Factorisation(N) do 
     p := pn[1]; 
     P := SylowSubgroup(G,p); 
     c := NilpotencyClass(P); 
     somma +:= c; 
    end for; 
    return somma, NilpotencyClass(G); 
end function; 

G:=SmallGroups(40)[11]; 
TestNilpotencyClass(G); 
TestNilpotencyClassb(G); 
TestNilpotencyClassc(G); 
TestNilpotencyClassd(G); 

Загрузка это на МАГМА дает следующий результат:

3 2 
32767 
3 32767 
32767 
3 32767 
32767 
3 32767 

Где что 32767 приходят? Обратите внимание, как это 2^(15) -1. Почему этот просчет производится?

Обновление: Я пробовал копировать код в MAGMA, и результат был таким же. Кроме того, после выхода и повторного открытия, я пытался копировать-наклеивать только первую функцию, то вычисления NilpotencyClass, а затем с помощью функции, и вот результат:

host-001:~ michelegorini$ magma 
Magma V2.20-4 (STUDENT) Fri Dec 19 2014 17:29:45 [Seed =01] 
Type ? for help. Type <Ctrl>-D to quit. 
TestNilpotencyClass := function(G) 
    n:=NilpotencyClass(G); 
    if not IsNilpotent(G) then 
     return 0; 
    end if; 
    N := #G; 
    somma := 0; 
    for pn in Factorisation(N) do 
     p := pn[1]; 
     P := SylowSubgroup(G,p); 
     c := NilpotencyClass(P); 
     somma +:= c; 
    end for; 
    return somma, n; 
end function;> TestNilpotencyClass := function(G) 
function>  n:=NilpotencyClass(G); 
function>  if not IsNilpotent(G) then 
function|if>   return 0; 
function|if>  end if; 
function>  N := #G; 
function>  somma := 0; 
function>  for pn in Factorisation(N) do 
function|for>   p := pn[1]; 
function|for>   P := SylowSubgroup(G,p); 
function|for>   c := NilpotencyClass(P); 
function|for>   somma +:= c; 
function|for>  end for; 
function>  return somma, n; 
function> end function; 
> G:=SmallGroups(40)[11]; 
> TestNilpotencyClass(G); 
3 2 
> NilpotencyClass(G); 
32767 
> TestNilpotencyClass(G); 
3 32767 
> TestNilpotencyClass(SmallGroups(40)[11]); 
3 2 
> NilpotencyClass(SmallGroups(40)[11]);  
2 
+0

Кто-нибудь видел это? Это было в течение 18 дней ... – MickG

+0

Почему мои вопросы MAGMA постоянно остаются без ответа? Это совпадение или что? Отвечено 28 дней назад, просмотрено 105 раз. – MickG

+0

Итак, после месяца, ожидающего здесь, дня, ожидающего ожидаемого предварительного одобрения модами на [форуме MAGMA] (http://icl.cs.utk.edu/magma/forum/search.php?search_id=egosearch) , где я присутствую как mickg. Вау, я когда-нибудь получу ответ на это? – MickG

ответ

2

Это ошибка в МАГМА; когда nilpotence устанавливается для группы ПК, возвращаемое значение NilpotencyClass() является мусором. Первый вызов дает правильное значение, но последующие вызовы не будут выполнены.

Это исправлено для следующего выпуска исправления (некоторое время в мае). В то же время обходное решение будет использовать (например)

> npclass := func<G | #LowerCentralSeries(G) - 1>; 
> npclass(G); 
2 
+0

Но тогда, если я беру функцию d и rmove NilpotencyClass в начале, я должен получить правильный результат. Но я этого не делаю. И почему разные компьютеры дают разные результаты? Я получаю 2^(15) -1, мой друг получает 2, учитель получает 1 ... – MickG

+0

Кроме того, я думаю, пришло время создать тег [tag: magma-cas] или понравившиеся на этом сайте. У меня недостаточно отзывов. – MickG

 Смежные вопросы

  • Нет связанных вопросов^_^