## 计算群论软件比较（GAP4、Magma2、Matlab7/Maple8、PARI/GP） 转

wangxuwei

gap> g:=DihedralGroup(8);;repr:=IrreducibleRepresentations(g);
[ Pcgs([ f1, f2, f3 ]) -> [ [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ] ],
Pcgs([ f1, f2, f3 ]) -> [ [ [ -1 ] ], [ [ 1 ] ], [ [ 1 ] ] ],
Pcgs([ f1, f2, f3 ]) -> [ [ [ 1 ] ], [ [ -1 ] ], [ [ 1 ] ] ],
Pcgs([ f1, f2, f3 ]) -> [ [ [ -1 ] ], [ [ -1 ] ], [ [ 1 ] ] ],
Pcgs([ f1, f2, f3 ]) -> [ [ [ 0, 1 ], [ 1, 0 ] ], [ [ E(4), 0 ], [ 0, -E(4) ] ], [ [ -1, 0 ], [ 0, -1 ] ] ] ]
gap> mats:=[ [ [ 0, 1 ], [ 1, 0 ] ], [ [ E(4), 0 ], [ 0, -E(4) ] ], [ [ -1, 0 ], [ 0, -1 ] ] ];;G:=GroupWithGenerators(mats);;IdGroup(G);StructureDescription(G);Elements(G);
[ 8, 3 ]
"D8"
[ [ [ -1, 0 ], [ 0, -1 ] ], [ [ 0, -1 ], [ -1, 0 ] ], [ [ 0, 1 ], [ 1, 0 ] ], [ [ 0, -E(4) ], [ E(4), 0 ] ],
[ [ 0, E(4) ], [ -E(4), 0 ] ], [ [ 1, 0 ], [ 0, 1 ] ], [ [ -E(4), 0 ], [ 0, E(4) ] ], [ [ E(4), 0 ], [ 0, -E(4) ] ]
]
gap> g:=QuaternionGroup(8);;repr:=IrreducibleRepresentations(g);                                                        [ Pcgs([ x, y, y2 ]) -> [ [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ] ], Pcgs([ x, y, y2 ]) -> [ [ [ -1 ] ], [ [ 1 ] ], [ [ 1 ] ]
], Pcgs([ x, y, y2 ]) -> [ [ [ 1 ] ], [ [ -1 ] ], [ [ 1 ] ] ],
Pcgs([ x, y, y2 ]) -> [ [ [ -1 ] ], [ [ -1 ] ], [ [ 1 ] ] ],
Pcgs([ x, y, y2 ]) -> [ [ [ 0, -1 ], [ 1, 0 ] ], [ [ E(4), 0 ], [ 0, -E(4) ] ], [ [ -1, 0 ], [ 0, -1 ] ] ] ]
gap> mats:=[ [ [ 0, -1 ], [ 1, 0 ] ], [ [ E(4), 0 ], [ 0, -E(4) ] ], [ [ -1, 0 ], [ 0, -1 ] ] ];;G:=GroupWithGenerators(mats);;IdGroup(G);StructureDescription(G);Elements(G);
[ 8, 4 ]
"Q8"
[ [ [ -1, 0 ], [ 0, -1 ] ], [ [ 0, -1 ], [ 1, 0 ] ], [ [ 0, 1 ], [ -1, 0 ] ], [ [ 0, -E(4) ], [ -E(4), 0 ] ],
[ [ 0, E(4) ], [ E(4), 0 ] ], [ [ 1, 0 ], [ 0, 1 ] ], [ [ -E(4), 0 ], [ 0, E(4) ] ], [ [ E(4), 0 ], [ 0, -E(4) ] ] ]

real matrix、complex matrix、square matrix、row matrix、column matrix、zero matrix、diagonal matrix、scalar matrix、unit matrix、multinomial of matrix A、determinant of a matrix A
gap> mat:=[[-20,12,-12],[-84,76,-12],[-72,72,-8]];;RankMat(mat);
3
gap> o:=0*Z(2);;i:=Z(2);;O:=[[o,o],[o,o]];I:=[[i,o],[o,i]];B:=[[i,i],[i,o]];A:=[[o,i],[i,i]];A*B;
[ [ 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2) ] ]
[ [ Z(2)^0, 0*Z(2) ], [ 0*Z(2), Z(2)^0 ] ]
[ [ Z(2)^0, Z(2)^0 ], [ Z(2)^0, 0*Z(2) ] ]
[ [ 0*Z(2), Z(2)^0 ], [ Z(2)^0, Z(2)^0 ] ]
[ [ Z(2)^0, 0*Z(2) ], [ 0*Z(2), Z(2)^0 ] ]
gap> V:=GroupWithGenerators([O,I,A,B]);
Group([ an immutable 2x2 matrix over GF2, an immutable 2x2 matrix over GF2, an immutable 2x2 matrix over GF2,  an immutable 2x2 matrix over GF2 ])
gap> A:=[ [ 1, 0,0], [ 1,0, 1 ], [ 0,1, 0] ];y:=CharacteristicPolynomial(A);Factors(y);A1:=TransposedMat(A);y1:=CharacteristicPolynomial(A1);Factors(y1);
[ [ 1, 0, 0 ], [ 1, 0, 1 ], [ 0, 1, 0 ] ]
x_1^3-x_1^2-x_1+1
[ x_1-1, x_1-1, x_1+1 ]
[ [ 1, 1, 0 ], [ 0, 0, 1 ], [ 0, 1, 0 ] ]
x_1^3-x_1^2-x_1+1
[ x_1-1, x_1-1, x_1+1 ]
gap> E12:=[[0,1,0],[1,0,0],[0,0,1]];;E23:=[[1,0,0],[0,0,1],[0,1,0]];;Order(E12);Order(E23);D3:=GroupWithGenerators([E12,E23]);;IdGroup(D3);StructureDescription(D3);Elements(D3);
2
2
[ 6, 1 ]
"S3"
[ [ [ 0, 0, 1 ], [ 0, 1, 0 ], [ 1, 0, 0 ] ], [ [ 0, 0, 1 ], [ 1, 0, 0 ], [ 0, 1, 0 ] ],
[ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ], [ [ 0, 1, 0 ], [ 1, 0, 0 ], [ 0, 0, 1 ] ],
[ [ 1, 0, 0 ], [ 0, 0, 1 ], [ 0, 1, 0 ] ], [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] ]
S_3={I,r,r^2,f,fr,fr^2}，其中取复数a+bi的二阶实矩阵表示为{{a,b},{-b,a}}[按：当然也可以取复数a+bi的二阶实矩阵表示为{{a,-b},{b,a}}]，I={{1,0},{0,1}},r={{cos(2pi/3),sin(2pi/3)},{-sin(2pi/3),cos(2pi/3)}},r^2={{cos(4pi/3),sin(4pi/3)},{-sin(4pi/3),cos(4pi/3)}}∈SO(2),f={{1,0},{0,-1}},fr={{cos(2pi/3),sin(2pi/3)},{sin(2pi/3),-cos(2pi/3)}},fr^2={{cos(4pi/3),sin(4pi/3)},{sin(4pi/3),-cos(4pi/3)}}∈O(2),但!∈SO(2)。
gap> r:=E(3);rr:=RealPart(r);ri:=ImaginaryPart(r);rr+ri*E(4);C3:=GroupWithGenerators([r]);;IdGroup(C3);
E(3)
-1/2
-1/2*E(12)^7+1/2*E(12)^11
E(3)
[ 3, 1 ]
gap> f:=[[1,0],[0,-1]];;R:=[[rr,ri],[-ri,rr]];;C2:=GroupWithGenerators([f]);;IdGroup(C2);A3:=GroupWithGenerators([R]);;IdGroup(A3);S3:=GroupWithGenerators([R,f]);;IdGroup(S3);
[ 2, 1 ]
[ 3, 1 ]
[ 6, 1 ]
D_4={I,r,r^2,r^3,f,fr,fr^2,fr^2}，其中取复数a+bi的二阶实矩阵表示为{{a,b},{-b,a}}[按：当然也可以取复数a+bi的二阶实矩阵表示为{{a,-b},{b,a}}]，I={{1,0},{0,1}},r={{cos(2pi/4),sin(2pi/4)},{-sin(2pi/4),cos(2pi/4)}},r^2={{cos(4pi/4),sin(4pi/4)},{-sin(4pi/4),cos(4pi/4)}}∈SO(2),f={{1,0},{0,-1}},fr={{cos(2pi/4),sin(2pi/4)},{sin(2pi/4),-cos(2pi/4)}},fr^2={{cos(4pi/4),sin(4pi/4)},{sin(4pi/4),-cos(4pi/4)}}∈O(2),但!∈SO(2)。
gap> r:=E(4);rr:=RealPart(r);ri:=ImaginaryPart(r);rr+ri*E(4);C4:=GroupWithGenerators([r]);;IdGroup(C4);
E(4)
0
1
E(4)
[ 4, 1 ]
gap> f:=[[1,0],[0,-1]];;R:=[[rr,ri],[-ri,rr]];;C2:=GroupWithGenerators([f]);;IdGroup(C2);C4:=GroupWithGenerators([R]);;IdGroup(C4);D4:=GroupWithGenerators([R,f]);;IdGroup(D4);
[ 2, 1 ]
[ 4, 1 ]
[ 8, 3 ]
gap> G:=SL(2,Integers);Order(G);
SL(2,Integers)
infinity
gap> A:=[[1,-1],[1,0]];
[ [ 1, -1 ], [ 1, 0 ] ]
gap> A in G;
true
gap> A^2;
[ [ 0, -1 ], [ 1, -1 ] ]
gap> A^3;
[ [ -1, 0 ], [ 0, -1 ] ]
gap> A^4;
[ [ -1, 1 ], [ -1, 0 ] ]
gap> A^5;
[ [ 0, 1 ], [ -1, 1 ] ]
gap> A^6;
[ [ 1, 0 ], [ 0, 1 ] ]
gap> C6:=GroupWithGenerators([A]);;IdGroup(C6);
[ 6, 2 ]
gap> IsSubgroup(G,C6);
true
gap> B:=[[1,1],[1,0]];B^-1;GB:=GroupWithGenerators([B]);;Order(GB);
[ [ 1, 1 ], [ 1, 0 ] ]
[ [ 0, 1 ], [ 1, -1 ] ]
infinity
gap> IsSubgroup(G,GB);
false
gap> f:=[[1,0],[0,-1]];f^-1;Af:=GroupWithGenerators([A,f]);;Order(Af);
[ [ 1, 0 ], [ 0, -1 ] ]
[ [ 1, 0 ], [ 0, -1 ] ]
infinity
gap> C:=[[1,1],[0,-1]];C^-1;AC:=GroupWithGenerators([A,C]);;Order(AC);
[ [ 1, 1 ], [ 0, -1 ] ]
[ [ 1, 1 ], [ 0, -1 ] ]
infinity
gap> fC:=GroupWithGenerators([f,C]);;Order(fC);
infinity
[ [ 1, 1 ], [ 0, 1 ] ]
[ [ 1, -1 ], [ 0, 1 ] ]
infinity
true
gap> F:=[[1,0],[1,-1]];F^-1;AF:=GroupWithGenerators([A,F]);;Order(AF);
[ [ 1, 0 ], [ 1, -1 ] ]
[ [ 1, 0 ], [ 1, -1 ] ]
12
gap> IdGroup(AF);StructureDescription(AF);
[ 12, 4 ]
"D12"
gap> IsSubgroup(G,AF);
false
gap> a1:=[[1,0,1],[0,-1,0],[-1,0,0]];DeterminantMat(a1);
[ [ 1, 0, 1 ], [ 0, -1, 0 ], [ -1, 0, 0 ] ]
-1
gap> a1^-1;
[ [ 0, 0, -1 ], [ 0, -1, 0 ], [ 1, 0, 1 ] ]
gap> Order(a1);
6
gap> a1^2;a1^3;a1^4;a1^5;a1^6;
[ [ 0, 0, 1 ], [ 0, 1, 0 ], [ -1, 0, -1 ] ]
[ [ -1, 0, 0 ], [ 0, -1, 0 ], [ 0, 0, -1 ] ]
[ [ -1, 0, -1 ], [ 0, 1, 0 ], [ 1, 0, 0 ] ]
[ [ 0, 0, -1 ], [ 0, -1, 0 ], [ 1, 0, 1 ] ]
[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ]
gap> a7:=[[0,0,1],[0,1,0],[1,0,0]];DeterminantMat(a7);Order(a7);
[ [ 0, 0, 1 ], [ 0, 1, 0 ], [ 1, 0, 0 ] ]
-1
2
gap> A62:=GroupWithGenerators([a1,a7]);;Order(A62);
12
gap> IdGroup(A62);StructureDescription(A62);
[ 12, 4 ]
"D12"
gap> a2:=[[0,0,-1],[0,1,0],[-1,0,0]];;DeterminantMat(a2);Order(a2);
-1
2
gap> a3:=[[0,0,-1],[0,1,0],[1,0,0]];;DeterminantMat(a3);Order(a3);
1
4
gap> A24:=GroupWithGenerators([a2,a3]);;Order(A24);
8
gap> IdGroup(A24);StructureDescription(A24);
[ 8, 3 ]
"D8"
gap> a4:=[[0,0,-1],[0,-1,0],[1,0,0]];;DeterminantMat(a4);Order(a4);
-1
4
gap> A244:=GroupWithGenerators([a2,a3,a4]);;Order(A244);
16
gap> IdGroup(A244);StructureDescription(A244);
[ 16, 11 ]
"C2 x D8"
gap> a5:=[[-1,0,0],[0,-1,0],[0,0,-1]];;DeterminantMat(a5);Order(a5);
-1
2
gap> A22:=GroupWithGenerators([a2,a5]);;Order(A22);
4
gap> IdGroup(A22);StructureDescription(A22);
[ 4, 2 ]
"C2 x C2"
gap> f:=[[1,0],[0,-1]];;R:=[[0,1],[-1,0]];;C4:=GroupWithGenerators([R]);;IdGroup(C4);
[ 4, 1 ]
gap> b1:=[[E(4),0],[0,E(4)]];;DeterminantMat(b1);Order(b1);
-1
4
gap> b2:=[[1,0],[0,-1]];;DeterminantMat(b2);Order(b2);
-1
2
gap> B42:=GroupWithGenerators([b1,b2]);;Order(B42);
8
gap> IdGroup(B42);StructureDescription(B42);
[ 8, 2 ]
"C4 x C2"
gap> b3:=[[-1,0],[0,-1]];;DeterminantMat(b3);Order(b3);
1
2
gap> B22:=GroupWithGenerators([b2,b3]);;Order(B22);
4
gap> IdGroup(B22);StructureDescription(B22);
[ 4, 2 ]
"C2 x C2"
gap> b4:=[[E(4),0],[1,-E(4)]];;DeterminantMat(b4);Order(b4);
1
4
gap> b5:=[[0,E(4)],[E(4),1]];;DeterminantMat(b5);Order(b5);
1
6
gap> B46:=GroupWithGenerators([b4,b5]);;Order(B46);
12
gap> IdGroup(B46);StructureDescription(B46);
[ 12, 1 ]
"C3 : C4"
gap> Q12:=QuaternionGroup(12);;IdGroup(Q12);StructureDescription(Q12);
[ 12, 1 ]
"C3 : C4"
gap> b6:=[[-E(4),0],[0,-E(4)]];;DeterminantMat(b6);Order(b6);
-1
4
gap> B44:=GroupWithGenerators([b4,b6]);;Order(B44);
8
gap> IdGroup(B44);StructureDescription(B44);
[ 8, 2 ]
"C4 x C2"
gap> qi:=[[E(4),0],[0,-E(4)]];;qj:=[[0,1],[-1,0]];;qk:=[[0,E(4)],[E(4),0]];;DeterminantMat(qi);Order(qi);DeterminantMat(qj);Order(qj);DeterminantMat(qk);Order(qk);Q8:=GroupWithGenerators([qi,qj]);;Order(Q8);IdGroup(Q8);StructureDescription(Q8);qk in Q8;
1
4
1
4
1
4
8
[ 8, 4 ]
"Q8"
true
gap> t:=Sqrt(2)/2;A:=[[t,-t],[t,t]];;B:=[[t,t],[-t,t]];;C:=[[-t,t],[-t,-t]];;D:=[[-t,-t],[t,-t]];;P:=[[0,1],[-1,0]];;Q:=[[0,-1],[1,0]];;W:=[[-1,0],[0,-1]];;I:=[[-1,0],[0,-1]];;C8:=Group([A,B,C,D,P,Q,W,I]);;Order(C8);IdGroup(C8);StructureDescription(C8);
1/2*E(8)-1/2*E(8)^3
8
[ 8, 1 ]
"C8"
gap> mats:=[ [ [ 0, 0, 1 ], [ 1, 0, 0 ], [ 0, 1, 0 ] ],[ [ -1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, -1 ] ],[ [ 1, 0, 0 ], [ 0, -1, 0 ], [ 0, 0, -1 ] ] ];;G:=GroupWithGenerators(mats);;IdGroup(G);StructureDescription(G);Elements(G);
[ 12, 3 ]
"A4"
[ [ [ -1, 0, 0 ], [ 0, -1, 0 ], [ 0, 0, 1 ] ], [ [ -1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, -1 ] ],
[ [ 0, -1, 0 ], [ 0, 0, -1 ], [ 1, 0, 0 ] ], [ [ 0, -1, 0 ], [ 0, 0, 1 ], [ -1, 0, 0 ] ],
[ [ 0, 0, -1 ], [ -1, 0, 0 ], [ 0, 1, 0 ] ], [ [ 0, 0, -1 ], [ 1, 0, 0 ], [ 0, -1, 0 ] ],
[ [ 0, 0, 1 ], [ -1, 0, 0 ], [ 0, -1, 0 ] ], [ [ 0, 0, 1 ], [ 1, 0, 0 ], [ 0, 1, 0 ] ],
[ [ 0, 1, 0 ], [ 0, 0, -1 ], [ -1, 0, 0 ] ], [ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ],
[ [ 1, 0, 0 ], [ 0, -1, 0 ], [ 0, 0, -1 ] ], [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] ]
gap> Order(mats[1]);Order(mats[2]);Order(mats[3]);
3
2
2
20151113添加：

D3DXMatrixRotationX函数是指XX30（X30的齐次坐标形式）
X30表示绕X轴顺时针旋转30°，对应P1X30=P2；
x30表示绕X轴逆时针旋转30°，对应x30P1=P2。
gap> X30:=[[1,0,0],[0,Sqrt(3)/2,1/2],[0,-1/2,Sqrt(3)/2]];;x30:=[[1,0,0],[0,Sqrt(3)/2,-1/2],[0,1/2,Sqrt(3)/2]];;P1:=[0,0,1];;P2:=[0,-1/2,Sqrt(3)/2];;P1*X30=P2;X30*P1=P2;P1*x30=P2;x30*P1=P2;
true
false
false
true
gap> XX30:=[[1,0,0,0],[0,Sqrt(3)/2,1/2,0],[0,-1/2,Sqrt(3)/2,0],[0,0,0,1]];;xx30:=[[1,0,0,0],[0,Sqrt(3)/2,-1/2,0],[0,1/2,Sqrt(3)/2,0],[0,0,0,1]];;PP1:=[0,0,1,1];;PP2:=[0,-1/2,Sqrt(3)/2,1];;PP1*XX30=PP2;XX30*PP1=PP2;PP1*xx30=PP2;xx30*PP1=PP2;
true
false
false
true
gap> C12:=GroupWithGenerators([X30]);;IdGroup(C12);StructureDescription(C12);
[ 12, 2 ]
"C12"
gap> C12:=GroupWithGenerators([x30]);;IdGroup(C12);StructureDescription(C12);
[ 12, 2 ]
"C12"
gap> C12:=GroupWithGenerators([XX30]);;IdGroup(C12);StructureDescription(C12);
[ 12, 2 ]
"C12"
gap> C12:=GroupWithGenerators([xx30]);;IdGroup(C12);StructureDescription(C12);
[ 12, 2 ]
"C12"

gap> A:=[1,2,1,1];;B:=[2,3,1,2];;C:=[1,1,1,1];;D:=[2,0,1,2];;F:= Rationals;;V:=VectorSpace(F,[A,B,C,D]);Dimension(V);
<vector space over Rationals, with 4 generators>
3
gap> A:=[[1,2],[2,1]];;B:=[[2,1],[1,2]];;C:=[[1,1],[1,1]];;D:=[[-1,1],[-1,1]];;F:=Rationals;;V:=VectorSpace(F,[A,B,C,D]);Dimension(V);
<vector space over Rationals, with 4 generators>
3
gap> B:= Basis( V );
SemiEchelonBasis( <vector space of dimension 3 over Rationals>, [ [ [ 1, 2 ], [ 2, 1 ] ], [ [ 0, 1 ], [ 1, 0 ] ],
[ [ 0, 0 ], [ 1, -1 ] ] ] )
gap> BasisVectors( Basis( V ) );
[ [ [ 1, 2 ], [ 2, 1 ] ], [ [ 0, 1 ], [ 1, 0 ] ], [ [ 0, 0 ], [ 1, -1 ] ] ]
gap> A:=[[1,1],[2,2]];;B:=[[2,-1],[0,3]];;C:=[[1,-2],[-2,1]];;D:=[[3,-3],[-2,4]];;F:=Rationals;;V:=VectorSpace(F,[A,B,C,D]);Dimension(V);
<vector space over Rationals, with 4 generators>
2

gap> x:=Indeterminate(Rationals);;f1:=1+2*x+3*x^2;;f2:=3+x-x^2;;f3:=2-x+x^2;;F:= Rationals;;V:= VectorSpace(F,[f1,f2,f3]);Dimension(V);
<vector space over Rationals, with 3 generators>
3
gap> x:=Indeterminate(Rationals);f1:=2+x+3*x^2;;f2:=1+3*x-x^2;;f3:=3+4*x+2*x^2;;F:= Rationals;;V:= VectorSpace(F,[f1,f2,f3]);Dimension(V);
x_1
<vector space over Rationals, with 3 generators>
2
gap> A:=[1,0,1];;B:=[1,2,-1];;C:=[-1,2,0];;F:= Rationals;;V:= VectorSpace(F,[A,B]);;C in V;Dimension(V);
false
2
gap> E11:=[[1,0],[0,0]];;E12:=[[0,1],[0,0]];;E21:=[[0,0],[1,0]];;E22:=[[0,0],[0,1]];;F:=Rationals;;V:=VectorSpace(F,[E11,E12,E21,E22]);Dimension(V);
<vector space over Rationals, with 4 generators>
4
1870年，老皮尔斯（Benjamin Peeirce，1809-1880）发表《线性结合代数》，列举6维以下的线性结合代数162个。

1898年，老嘉当在研究Lie代数结构的基础上，对结合代数进行类似的研究。1900年，俄国数学家摩林（1861-1941）引进重要的根基概念，证明复数域上维数>=2的单结合代数都与复数域上适当阶数的矩阵代数同构。
1907年，(英-美)韦德伯恩(Wedderburn,J.H.M.)的“论超复数”发表,给出了关于一般线性结合代数的结构理论
1908年，(英-美)韦德伯恩(Wedderburn,J.H.M.)证明关于半单代数结构的定理,开创了环的结构的研究
1914年，(英-美)韦德伯恩(Wedderburn,J.H.M.)给出第一个非交换域的例子

[狭义]代数的定义：一个向量空间在上面装配一个满足分配律的乘法就成了一个代数。

F-向量空间V是F模。具有线性运算的某类集合，本身是一个由两个【向量模元素构成一个Abel群，纯量环元素构成一个域，这两个代数结构相容】相容的代数结构组成的代数结构。V/F是Abel群

V叫做F的代数（是一类特殊环），F是它的基础域。

r(m1+m2)、(r1+r2)m、(r1r2)m

Q/Q是R/Q的子空间

2004.2.10对数域A和B，形成线性空间的充要条件是A{>=}B。（如：C/C,C/R,C/Q）

http://www.jstor.org/stable/2369153?seq=1#page_scan_tab_contents
i（J）=sqrt(-1)

i^-i=sqrt(e^pi)=4.810477381

{dd,dn,nd,nn}的乘法表：
dd,dn,0,0
0,0,dd,dn
nd,nn,0,0
0,0,nd,nn
【1维代数】单代数(Single Algebra)有2种情况：
[1]它的单位是幂等的；
[2]它是幂零的。

i*i=i

i*i=0
【2维代数】双代数（Double Algebra）
2种情况：
[1]它有一个幂等表达式
[2]它是幂零的

[11]定义方程是ij=ji=j

i,j
j,0
[12]定义方程是ij=j,ji=0;j^2=0

i,j
0,0

[21]n=3

j,0
0,0
[22]n=2

【3维代数】三重代数（Triple Algebra）

[1]有一个幂等基
[2]基是幂零的

[11]定义方程是ij=ji=j,ik=ki=k,
(a_3)的乘法表：
i,j,k
j,k,0
k,0,0
[12]定义方程是ji=ij=j,ik=k,ki=0;
j^2=k^2=kj=0,jk=c_23k,
j^2k=0c_23jk=c_23^2k=c_23=jk

[13]定义方程是ij=j,ki=k,ji=ik=0;
j^2=k^2=kj=0,jk=a_23i,
jkj=0=a_23j=a_23=jk,

[21]n=4

i^2=j,i^3=k.

j,k,0
k,0,0
0,0,0
[22]n=3

i^2=j,ik=0,
ki=b_31j,k^2=b_3j.

[221]
k^2=j

j,0,0
0,0,0
aj,0,j

i(k+i)=-j
(k+i)i=j
(k+i)^2=0,
(c'_3)的乘法表：
j,0,j
0,0,0
-j,0,0
[222]

j,0,0
0,0,0
j,0,0
[23]n=2

0,0,0
0,0,i
0,-i,0

[1]有幂等基

[11]
[12]
[13]
[14]
[15]
[16]
[2]基是幂零的

[21]
[22]
[23]
[24]
【5维代数】五次代数（Quintuple Algebra）

[1]有1个幂等基

[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[110]
[111]
[2]代数是幂零的

[21]n=6
[22]n=5
[23]n=4
[24]n=3
[25]n=2
【6维代数】六维代数（Sextuple Algebra）
[1]有1个幂等基

[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[110]
[111]
[112]
[113]
[114]
[115]
[116]
[117]
[118]
[119]
[2]代数是幂零的

20151120添加：﻿﻿

p=3,7,11,19,43,67,163正好是全部类数等于一的虚二次域（还有p=1, p=2)。
? qfbclassno(-3)
%15 = 1

? qfbclassno(5)
%16 = 1

? qfbclassno(-15)
%17 = 2
? qfbclassno(-23)
%18 = 3

? eulerphi(20)
%3 = 8
? Euler()
%6 = 0.57721566490153286060651209008240243104
? Euler
%7 = 0.57721566490153286060651209008240243104
? G=galoisinit(x^4+1)
%9 = [x^4 + 1, [17, 1, 17], [9, 8, 15, 2], [13, 13, 13, 13; 9, 8, 2, 15; 1, 1, 16, 16; 2, 15, 9, 8], 1, [Vecsmall([1, 2, 3, 4]), Vecsmall([2, 1, 4, 3]), Vecsmall([3, 4, 1, 2]), Vecsmall([4, 3, 2, 1])], [Vecsmall([2, 1, 4, 3]), Vecsmall([3,4, 1, 2])], Vecsmall([2, 2])]
? galoisidentify(G)
%10 = [4, 2]
gap> V:=Group((),(1,2)(3,4),(1,3)(2,4),(1,4)(2,3));;IdGroup(V);g:=V;;L:=Irr(g);List(L,DegreeOfCharacter);nat:=NaturalCharacter(g);DegreeOfCharacter(nat);p:=SmallerDegreePermutationRepresentation(g);IdGroup(Image(p));
[ 4, 2 ]
[ Character( CharacterTable( Group([ (), (1,2)(3,4), (1,3)(2,4), (1,4)(2,3) ]) ), [ 1, 1, 1, 1 ] ),
Character( CharacterTable( Group([ (), (1,2)(3,4), (1,3)(2,4), (1,4)(2,3) ]) ), [ 1, 1, -1, -1 ] ),
Character( CharacterTable( Group([ (), (1,2)(3,4), (1,3)(2,4), (1,4)(2,3) ]) ), [ 1, -1, 1, -1 ] ),
Character( CharacterTable( Group([ (), (1,2)(3,4), (1,3)(2,4), (1,4)(2,3) ]) ), [ 1, -1, -1, 1 ] ) ]
[ 1, 1, 1, 1 ]
Character( CharacterTable( Group([ (), (1,2)(3,4), (1,3)(2,4), (1,4)(2,3) ]) ), [ 4, 0, 0, 0 ] )
4
IdentityMapping( Group([ (), (1,2)(3,4), (1,3)(2,4), (1,4)(2,3) ]) )
[ 4, 2 ]

20151201、20151203添加：

§2预备知识
§2.1关于Magma语言的预备知识

Magma在近世代数中的应用http://www.docin.com/p-1246719485.html

Magma V2.12-16    Thu Dec 03 2015 16:10:52    [Seed = 387889232]
Type ? for help.  Type <Ctrl>-D to quit.
> print 4+2;
6
> 4+2;
6
> A4:=Alt(4);idg:=IdentifyGroup(A4);n:=Order(A4);IsCyclic(A4);IsAbelian(A4);ZA4:=Center(A4);DA4:=DerivedGroup(A4);
false
false
> print idg;
<12, 3>
> print n;
12
> IdentifyGroup(ZA4);
<1, 1>
> IdentifyGroup(DA4);
<4, 2>
> S4:=Sym(4);IdentifyGroup(S4);Order(S4);IsCyclic(S4);IsAbelian(S4);ZS4:=Center(S4);DS4:=DerivedGroup(S4);IdentifyGroup(ZS4);IdentifyGroup(DS4);
<24, 12>
24
false
false
<1, 1>
<12, 3>

https://magma.maths.usyd.edu.au/magma/handbook/text/599#6320
> D4:=DihedralGroup(4);C2:=CyclicGroup(2);GAP16_11:=DirectProduct(D4,C2);IdentifyGroup(GAP16_11);Order(GAP16_11);IsCyclic(GAP16_11);IsAbelian(GAP16_11);ZGAP16_11:=Center(GAP16_11);DGAP16_11:=DerivedGroup(GAP16_11);IdentifyGroup(ZGAP16_11);IdentifyGroup(DGAP16_11);
<16, 11>
16
false
false
<4, 2>
<2, 1>

https://magma.maths.usyd.edu.au/magma/handbook/text/614#6529
> H:=PermutationGroup<3|(1,2,3),(1,3,2)>;IdentifyGroup(H);Order(H);IsCyclic(H);IsAbelian(H);ZH:=Center(H);DH:=DerivedGroup(H);IdentifyGroup(ZH);IdentifyGroup(DH);
<3, 1>
3
true
true
<3, 1>
<1, 1>
> S3:=PermutationGroup<3|(1,2,3),(1,3,2),(1,2)>;IdentifyGroup(S3);Order(S3);IsCyclic(S3);IsAbelian(S3);ZS3:=Center(S3);DS3:=DerivedGroup(S3);IdentifyGroup(ZS3);IdentifyGroup(DS3);
<6, 1>
6
false
false
<1, 1>
<3, 1>

>> maple('with(group);')

ans =

[DerivedS, LCS, NormalClosure, RandElement, SnConjugates, Sylow, areconjugate, center, centralizer, core, cosets, cosrep, derived, elements, groupmember, grouporder, inter, invperm, isabelian, isnormal, issubgroup, mulperms, normalizer, orbit, parity, permrep, pres, transgroup]

>> maple('S_3:= permgroup(3,{g = [[2, 3]], f = [[1, 2, 3]]});')

ans =

S_3 := permgroup(3,{g = [[2, 3]], f = [[1, 2, 3]]})

>> maple('grouporder(S_3);')

ans =

6
>> maple('L:=elements(S_3)')

ans =

L := {[[2, 3]], [[1, 3, 2]], [[1, 3]], [[1, 2]], [], [[1, 2, 3]]}
>> for i=1:6,maple(['grouporder(permgroup(3,','{L[',int2str(i),']}))']),end

ans =

2

ans =

3

ans =

2

ans =

2

ans =

1

ans =

3
>> maple(['sy2:=Sylow(S_3,2);',';grouporder(sy2);',';elements(sy2)'])

ans =

sy2 := permgroup(3,{[[1, 3]]})2{[[1, 3]], []}

>> maple(['sy3:=Sylow(S_3,3);',';grouporder(sy3);',';elements(sy3)'])

ans =

sy3 := permgroup(3,{[[1, 2, 3]]})3{[[1, 3, 2]], [], [[1, 2, 3]]}

>> maple('ZS3:=center(S_3);')

ans =

ZS3 := permgroup(3,{})

>> maple('grouporder(ZS3);')

ans =

1

>> maple('L:=elements(S_3)')

ans =

L := {[], [[2, 3]], [[1, 2, 3]], [[1, 3, 2]], [[1, 3]], [[1, 2]]}
>> for i=1:6,maple(['invperm(L[',int2str(i),'])']),end

ans =

[]

ans =

[[2, 3]]

ans =

[[1, 3, 2]]

ans =

[[1, 2, 3]]

ans =

[[1, 3]]

ans =

[[1, 2]]
>> maple('a22:=mulperms(L[2],L[2]);a222:=mulperms(a22,L[2]);a33:=mulperms(L[3],L[3])')

ans =

a22 := []a222 := [[2, 3]]a33 := [[1, 3, 2]]

>> for i=1:6,maple(['orbit(S_3,',int2str(i),')']),end

ans =

{1, 2, 3}

ans =

{1, 2, 3}

ans =

{1, 2, 3}

ans =

{4}

ans =

{5}

ans =

{6}

>> for i=1:6,maple(['SnConjugates(S_3,L[',int2str(i),'])']),end

ans =

3

ans =

2

ans =

3

ans =

3

ans =

1

ans =

2
>> maple('G:=permgroup(4,{a=[[1,2],[3,4]],b=[[1,2,3,4]]})')

ans =

G := permgroup(4,{a = [[1, 2], [3, 4]], b = [[1, 2, 3, 4]]})

>> maple('grouporder(G);')

ans =

8

>> maple('ZG:=center(G);grouporder(ZG)')

ans =

ZG := permgroup(4,{[[1, 3], [2, 4]]})2

GAP4[ 8, 3 ]=D4有1个1阶元，5个2阶元，2个4阶元，0个8阶元
>> maple('D4:=permgroup(4,{[[1,2],[3,4]],[[2,3],[1,4]],[[1,3],[2,4]],[[1,2,3,4]]});grouporder(D4);L:=elements(D4)');for i=1:8,maple(['grouporder(permgroup(4,','{L[',int2str(i),']}))']),end

ans =

2

ans =

4

ans =

2

ans =

2

ans =

4

ans =

1

ans =

2

ans =

2

Cauchy定理：如果p整除|G|，那么G中必有p阶元。

C_6里面有6阶元素,所以4次交错群不可能有子群C_6；
S_3中,(123)=(12)*(13)，即：一个三阶元等于两个二阶元的积；而A_4中所有2阶元为：(12)(34),(23)(14),(13)(24)，

GAP4[ 12, 3 ]=A_4：1,3,8,0,0,0,
4次交错群A_4没有4阶元，|Syl_2(A_4)|=4，Syl_2(A_4)=K_4!=C_4，K_4是A_4的正规子群
>> maple('A4:=permgroup(4,{[[1,2],[3,4]],[[2,3],[1,4]],[[1,3],[2,4]],[[1,2,3]]});n:=grouporder(A4);L:=elements(A4)');for i=1:12,maple(['grouporder(permgroup(4,','{L[',int2str(i),']}))']),end

ans =

3

ans =

2

ans =

1

ans =

3

ans =

3

ans =

3

ans =

3

ans =

3

ans =

3

ans =

3

ans =

2

ans =

2

### wangxuwei

SAGE入门：开源数学系统之集大成者

bli
2013/09/22
0
0
14种16阶群、13种60阶群的结构与表示（2014-5-25,5-28,5-29）(附GAP软件的使用)

wangxuwei
06/07
0
0
NVIDIA GPU—Tesla和GeForce的比较

OpenStack2015
2017/06/27
0
0

2016/11/17
14
0

09/30
0
0

Deepin 安装wireshark抓包工具

IamOkay
8分钟前
0
0
Docker镜像仓库服务-Nexus

openthings
20分钟前
0
0
127.0.0.1 和 0.0.0.0 地址的区别

1. IP地址分类 1.1 IP地址表示 IP地址由两个部分组成，net-id和host-id，即网络号和主机号。 net-id:表示ip地址所在的网络号。 host-id：表示ip地址所在网络中的某个主机号码。 即： IP-a...

17
0

lanyu96

4
0

redisson提供了基于redis的分布式锁实现方式，本文就尝试了下锁的使用方式。Redisson同时还为分布式锁提供了异步执行的相关方法，第二节执行介绍。 一、可重入锁验证 同一个jvm里面同一线程的...

noob_chr

12
0