GAPを使う
code:memo
gap> 3^80;
147808829414345923316083210206383297601
gap> tst := Filename( DirectoriesLibrary("tst"), "testinstall.g" );;
gap> Read(tst);
基本
code:memo
終了
quit;
ソースコード読み取り
Read("../../GAPProgs/Example.g");
計算
gap> (9 - 7) * (5 + 6);
22
有理数
gap> 12345/25;
2469/5
gap> 17 mod 3
2
ブール代数
gap> not true; true and false; true or false;
false
false
true
gap> 10 > 0 and 10 < 100;
true
巡回置換
code:memo
permutation.
gap> (1,2,3);
(1,2,3)
gap> (1,2,3) * (1,2);
(2,3)
(1,2,3)は巡回置換$ σ = (123) の巡回置換として認識する。
code:memo
逆元(^-1)
gap> (1,2,3)^-1;
(1,3,2)
gap> 2^(1,2,3);
3
gap> (1,2,3)^(1,2);
(1,3,2)
$ S_3 の巡回置換$ σ = (123) と
$ σ^{-1}
$ \begin{pmatrix} 1 & 2 & 3 & 4 & 5 \\ 2 & 4 & 5 & 1 & 3 \end{pmatrix} = (124)(35)
$ (124) は1 → 2 → 4 → 1となる巡回置換。
変数の利用
「:」を使用する
code:memo
gap> a := 2^3;
8
gap> b := 3^2;
9
gap> a + b;
17
gap> c = 1;
Variable: 'c' must have a value
gap> a = 1;
false
使用例
code:memo
gap> Gcd(8,12); # 最大公約数
4
gap> Lcm(8,12); # 最小公倍数
24
gap> Binomial(6,2); # 二項係数
15
gap> IsPrime(2^11-1); # 素数判定
false
gap> FactorsInt(2^11-1); # 素因数分解
gap> NextPrimeInt(2^11-1); # 与えられた自然数より大きい最小の素数を返す
2053
ベクトルと行列
code:memo
2
固有値と固有ベクトル
集合
code:memo
gap> IsSSortedList(number);
true
gap> IsSSortedList(number2);
false
gap> number3 := Set(number2)
gap> number := Set(number);
gap> IsSSortedList(number);
true
有限体(ガロア体)
code:memo
関連