Programming with GAP: Instructor Notes

Загальний

Перша сесія з GAP

Обговоріть, чому використання посібника GAP у Google є поганою практикою замість використання довідкової системи GAP.

  1. Рішення виклику: Filtered( elts, g -> 2^g = 2 ); and Filtered( elts, g -> (1,2)^g = (1,2) );.

Ще декілька об’єктів GAP

  1. Розв’язання завдання: r:=c[1]; for i in [2..Length(c)] do if c[i][2]>r[2] then r:=c[i]; fi; od; r;

Функції в GAP

Використання регресійних тестів

Пошук малими групами

Обговоріть, чому ітерація краща, ніж AllSmallGroups, що виснажує пам’ять (згадайте концепцію об’єктів, що самонавчаються).

  1. Розв’язання завдання: Sum(List(Filtered([1..2000], n -> not IsPrimePowerInt(n)),NrSmallGroups)); NrSmallGroups(1536); last2-last;. In addition to SmallGroup(105,1) та SmallGroup(357,1), інша група є SmallGroup(1785,1).

Атрибути та методи

  1. Ідеї для завдання: спробуйте k:=1, а потім k:=k+1;n:=2^k;AvgOrdOfCollection(DihedralGroup(n));time;AvgOrdOfGroup(DihedralGroup(n));time;. Навіть для k=20 перша функція займає приблизно 15 секунд, а друга – приблизно 115 секунд на MacBook Pro.