20200415问题:V_512、QD_512、H_512、Y_512=Yn(16)的GAP编号是多少(也即n=64时)
2*n*n阶群Y_n=<a,b,c|b^n=c^n=(bc)^n=1,a^2=(ab)^2=(ac)^2=(abc)^2=1>
X_n=<a,b|a^2=1,b*a*b^n=ab^2a>
|X_n|:1->∞,2->2,3->20=4*5,4->48,5->72=8*9,6->110=10*11,7->480,8->406,9->784,10->2736,11->2500,...
2^(m+1)*n^2阶群Z_mn=<a,b|a^4=b^4=1,(a^mb^m)^n=1,a^(-1)ba^(-1)b=1>
U_6n=<a,b|a^3=1,b^2n=1,abab^(-1)=1>
V_8n=<a,b|a^2n=1,b^4=1,abab=1,ab^(-1)ab^(-1)=1>
U_6n=U(3,n)推广为U(m,n)=<a,b|a^m=b^2n=1,abab^-1=1>
GAP[48,1]=U(3,8)
GAP[32,12]=U(4,4)
GAP[48,22]=U(4,6)
GAP[48,9]=U(6,4)
V_8n=V(4,n)推广为V(m,n)=<a,b|a^2n=b^m=1,abab=1,ab^-1ab^-1=1>
GAP[32,9]=V(4,4)
GAP[48,14]=V(4,6)
GAP[48,15]=V(6,4)
Umn:=function(m,n) F:=FreeGroup(2);;G:=F/[F.1^m,F.2^(2*n),F.1*F.2*F.1*F.2^(-1)];;return G;end;;
Vmn:=function(m,n) F:=FreeGroup(2);;G:=F/[F.1^(2*n),F.2^m,F.1*F.2*F.1*F.2,F.1*F.2^(-1)*F.1*F.2^(-1)];;return G;end;;
D_2n=<a,b|a^n=b^2=1,bab^-1=a^(n-1)>
二面体群D_2n的矩阵表示:
b:=[ [ 1, 0 ], [ 0, -1 ];;
a:=[ [RealPart(E(n)), ImaginaryPart(E(n)) ], [ -ImaginaryPart(E(n)), RealPart(E(n)) ] ];;
QD_8n=<a,b|a^4n=b^2=1,bab^-1=a^(2n-1)>
M_8n=<a,b|a^4n=b^2=1,bab^-1=a^(2n+1)>
H_16n=<a,b|a^4n=b^4=1,ab=ba^-1>
QD_mn=<a,b|a^(mn)=b^2=1,bab^-1=a^(2n-1)>,QDmn(2,n)是rank=2的4n阶二面体群
M_mn=<a,b|a^(mn)=b^2=1,bab^-1=a^(2n+1)>
H_4n=<a,b|a^n=b^4=1,ab=ba^-1>
H_mn=<a,b|a^n=b^m=1,ab=ba^-1>
H4n:=function(n) F:=FreeGroup(2);;G:=F/[F.1^n,F.2^4,F.1*F.2*(F.2*F.1^(-1))^(-1)];;return G;end;;
Hmn:=function(m,n) F:=FreeGroup(2);;G:=F/[F.1^n,F.2^m,F.1*F.2*(F.2*F.1^(-1))^(-1)];;return G;end;;
Hmn(2,n)是rank=2的2n阶二面体群
Hmn(8,n)是rank=2的8n阶群
GAP[24,1]=H(8,3)
GAP[32,12]=H(8,4)
Hmn(6,n)是rank=2的6n阶群
Hmn(12,n)是rank=2的12n阶群
Mmn:=function(m,n) F:=FreeGroup(2);;G:=F/[F.1^(m*n),F.2^2,F.2*F.1*F.2^(-1)*F.1^(-1-2*n)];;return G;end;;
Mmn(2,n)是rank=2的4n阶Abel群
QDmn:=function(m,n) F:=FreeGroup(2);;G:=F/[F.1^(m*n),F.2^2,F.2*F.1*F.2^(-1)*F.1^(1-2*n)];;return G;end;;
注意:D_2n、QD_8n、M_8n中的bab^-1也可以写成bab,这是因为F.2^2=1=>F.2^(-1)=F.2
例如,下面两种定义QD_8n的写法都是正确的:
QD8n:=function(n) F:=FreeGroup(2);;G:=F/[F.1^(4*n),F.2^2,F.2*F.1*F.2*F.1^(1-2*n)];;return G;end;;
QD8n:=function(n) F:=FreeGroup(2);;G:=F/[F.1^(4*n),F.2^2,F.2*F.1*F.2^(-1)*F.1^(1-2*n)];;return G;end;;
定理:任意群都是一个自由群的同态像。
GAP命令为:
gap> F:=FreeGroup(2);;G:=F/[F.1^4,F.2^2*F.1^(-2),F.2^(-1)*F.1*F.2*F.1];;IdGroup(G);
[ 8, 4 ]
gap> F:=FreeGroup(2);;G:=F/[F.1^6,F.2^2*F.1^(-3),F.2^(-1)*F.1*F.2*F.1];;IdGroup(G);
[ 12, 1 ]
Q_4n=<a,b|a^2n=1,b^2=a^n,b^(-1)aba=1>
Q4n(n)=Qmn(2,n)推广为2*m*n阶群Qmn(m,n)=<a,b|a^mn=1,b^m=a^n,b^(-1)aba=1>
GAP[32,15]=Q(4,4)
GAP[48,10]=Q(4,6)
求出Q_8到Q_256的GAP4编号:
gap> Q4n:=function(n) F:=FreeGroup(2);;G:=F/[F.1^(2*n),F.2^2*F.1^(-n),F.2^(-1)*F.1*F.2*F.1];;return G;end;;
gap> for n in [2..64] do Print(IdGroup(Q4n(n)),"\n");od;
gap> Qmn:=function(m,n) F:=FreeGroup(2);;G:=F/[F.1^(m*n),F.2^m*F.1^(-n),F.2^(-1)*F.1*F.2*F.1];;return G;end;;
gap> for n in [1..32] do Print(IdGroup(Qmn(2,n)),IdGroup(Qmn(4,n)),IdGroup(Qmn(6,n)),IdGroup(Qmn(8,n)),IdGroup(Qmn(12,n)),"\n");od;
[ 4, 1 ][ 8, 1 ][ 12, 2 ][ 16, 1 ][ 24, 2 ]
[ 8, 4 ][ 16, 6 ][ 24, 11 ][ 32, 17 ][ 48, 24 ]
[ 12, 1 ][ 24, 1 ][ 36, 6 ][ 48, 1 ][ 72, 12 ]
[ 16, 9 ][ 32, 15 ][ 48, 27 ][ 64, 45 ][ 96, 58 ]
[ 20, 1 ][ 40, 1 ][ 60, 2 ][ 80, 1 ][ 120, 2 ]
[ 24, 4 ][ 48, 10 ][ 72, 26 ][ 96, 19 ][ 144, 75 ]
[ 28, 1 ][ 56, 1 ][ 84, 4 ][ 112, 1 ][ 168, 4 ]
[ 32, 20 ][ 64, 49 ][ 96, 63 ][ 128, 105 ][ 192, 174 ]
[ 36, 1 ][ 72, 1 ][ 108, 6 ][ 144, 1 ][ 216, 12 ]
[ 40, 4 ][ 80, 10 ][ 120, 16 ][ 160, 19 ][ 240, 39 ]
[ 44, 1 ][ 88, 1 ][ 132, 2 ][ 176, 1 ][ 264, 2 ]
[ 48, 8 ][ 96, 26 ][ 144, 73 ][ 192, 22 ][ 288, 253 ]
[ 52, 1 ][ 104, 1 ][ 156, 4 ][ 208, 1 ][ 312, 4 ]
[ 56, 3 ][ 112, 9 ][ 168, 24 ][ 224, 18 ][ 336, 64 ]
[ 60, 3 ][ 120, 3 ][ 180, 15 ][ 240, 3 ][ 360, 35 ]
[ 64, 54 ][ 128, 157 ][ 192, 179 ][ 256, 450 ][ 384, 561 ]
[ 68, 1 ][ 136, 1 ][ 204, 2 ][ 272, 1 ][ 408, 2 ]
[ 72, 4 ][ 144, 10 ][ 216, 43 ][ 288, 19 ][ 432, 125 ]
[ 76, 1 ][ 152, 1 ][ 228, 4 ][ 304, 1 ][ 456, 4 ]
[ 80, 8 ][ 160, 26 ][ 240, 37 ][ 320, 21 ][ 480, 97 ]
[ 84, 5 ][ 168, 5 ][ 252, 22 ][ 336, 5 ][ 504, 48 ]
[ 88, 3 ][ 176, 9 ][ 264, 13 ][ 352, 18 ][ 528, 37 ]
[ 92, 1 ][ 184, 1 ][ 276, 2 ][ 368, 1 ][ 552, 2 ]
[ 96, 8 ][ 192, 65 ][ 288, 235 ][ 384, 78 ][ 576, 1132 ]
[ 100, 1 ][ 200, 1 ][ 300, 2 ][ 400, 1 ][ 600, 2 ]
[ 104, 4 ][ 208, 10 ][ 312, 27 ][ 416, 19 ][ 624, 67 ]
[ 108, 1 ][ 216, 1 ][ 324, 10 ][ 432, 1 ][ 648, 16 ]
[ 112, 7 ][ 224, 25 ][ 336, 62 ][ 448, 20 ][ 672, 158 ]
[ 116, 1 ][ 232, 1 ][ 348, 2 ][ 464, 1 ][ 696, 2 ]
[ 120, 26 ][ 240, 71 ][ 360, 100 ][ 480, 172 ][ 720, 341 ]
[ 124, 1 ][ 248, 1 ][ 372, 4 ][ 496, 1 ][ 744, 4 ]
[ 128, 163 ]
[ 132, 3 ]
[ 136, 4 ]
[ 140, 3 ]
[ 144, 4 ]
[ 148, 1 ]
[ 152, 3 ]
[ 156, 5 ]
[ 160, 8 ]
[ 164, 1 ]
[ 168, 34 ]
[ 172, 1 ]
[ 176, 7 ]
[ 180, 3 ]
[ 184, 3 ]
[ 188, 1 ]
[ 192, 9 ]
[ 196, 1 ]
[ 200, 4 ]
[ 204, 3 ]
[ 208, 8 ]
[ 212, 1 ]
[ 216, 4 ]
[ 220, 5 ]
[ 224, 7 ]
[ 228, 5 ]
[ 232, 4 ]
[ 236, 1 ]
[ 240, 69 ]
[ 244, 1 ]
[ 248, 3 ]
[ 252, 5 ]
[ 256, 541 ]
gap> U6n:=function(n) F:=FreeGroup(2);;G:=F/[F.1^3,F.2^(2*n),F.1*F.2*F.1*F.2^(-1)];;return G;end;;
gap> Umn:=function(m,n) F:=FreeGroup(2);;G:=F/[F.1^m,F.2^(2*n),F.1*F.2*F.1*F.2^(-1)];;return G;end;;
gap> for n in [1..63] do Print(IdGroup(Umn(3,n)),IdGroup(Umn(4,n)),IdGroup(Umn(6,n)),"\n");od;for n in [64] do Print(IdGroup(Umn(3,n)),"Umn(4,64)编号未知",IdGroup(Umn(6,n)),"\n");od;for n in [65..70] do Print(IdGroup(Umn(3,n)),IdGroup(Umn(4,n)),IdGroup(Umn(6,n)),"\n");od;
[ 6, 1 ][ 8, 3 ][ 12, 4 ]
[ 12, 1 ][ 16, 4 ][ 24, 7 ]
[ 18, 3 ][ 24, 10 ][ 36, 12 ]
[ 24, 1 ][ 32, 12 ][ 48, 9 ]
[ 30, 1 ][ 40, 10 ][ 60, 11 ]
[ 36, 6 ][ 48, 22 ][ 72, 29 ]
[ 42, 3 ][ 56, 9 ][ 84, 13 ]
[ 48, 1 ][ 64, 44 ][ 96, 18 ]
[ 54, 4 ][ 72, 10 ][ 108, 24 ]
[ 60, 1 ][ 80, 22 ][ 120, 24 ]
[ 66, 1 ][ 88, 9 ][ 132, 8 ]
[ 72, 12 ][ 96, 55 ][ 144, 74 ]
[ 78, 3 ][ 104, 10 ][ 156, 16 ]
[ 84, 3 ][ 112, 21 ][ 168, 32 ]
[ 90, 6 ][ 120, 32 ][ 180, 33 ]
[ 96, 1 ][ 128, 153 ][ 192, 57 ]
[ 102, 1 ][ 136, 10 ][ 204, 10 ]
[ 108, 7 ][ 144, 22 ][ 216, 56 ]
[ 114, 3 ][ 152, 9 ][ 228, 13 ]
[ 120, 1 ][ 160, 55 ][ 240, 54 ]
[ 126, 12 ][ 168, 40 ][ 252, 42 ]
[ 132, 1 ][ 176, 21 ][ 264, 21 ]
[ 138, 1 ][ 184, 9 ][ 276, 8 ]
[ 144, 28 ][ 192, 169 ][ 288, 245 ]
[ 150, 1 ][ 200, 10 ][ 300, 10 ]
[ 156, 3 ][ 208, 22 ][ 312, 35 ]
[ 162, 8 ][ 216, 10 ][ 324, 66 ]
[ 168, 3 ][ 224, 54 ][ 336, 79 ]
[ 174, 1 ][ 232, 10 ][ 348, 10 ]
[ 180, 14 ][ 240, 83 ][ 360, 98 ]
[ 186, 3 ][ 248, 9 ][ 372, 13 ]
[ 192, 1 ][ 256, 531 ][ 384, 162 ]
[ 198, 6 ][ 264, 29 ][ 396, 26 ]
[ 204, 1 ][ 272, 22 ][ 408, 23 ]
[ 210, 8 ][ 280, 30 ][ 420, 37 ]
[ 216, 13 ][ 288, 55 ][ 432, 126 ]
[ 222, 3 ][ 296, 10 ][ 444, 16 ]
[ 228, 3 ][ 304, 21 ][ 456, 32 ]
[ 234, 12 ][ 312, 43 ][ 468, 51 ]
[ 240, 1 ][ 320, 168 ][ 480, 130 ]
[ 246, 1 ][ 328, 10 ][ 492, 10 ]
[ 252, 21 ][ 336, 108 ][ 504, 136 ]
[ 258, 3 ][ 344, 9 ][ 516, 13 ]
[ 264, 1 ][ 352, 54 ][ 528, 52 ]
[ 270, 9 ][ 360, 31 ][ 540, 66 ]
[ 276, 1 ][ 368, 21 ][ 552, 21 ]
[ 282, 1 ][ 376, 9 ][ 564, 8 ]
[ 288, 64 ][ 384, 557 ][ 576, 1124 ]
[ 294, 3 ][ 392, 9 ][ 588, 13 ]
[ 300, 1 ][ 400, 22 ][ 600, 23 ]
[ 306, 6 ][ 408, 31 ][ 612, 32 ]
[ 312, 3 ][ 416, 55 ][ 624, 82 ]
[ 318, 1 ][ 424, 10 ][ 636, 10 ]
[ 324, 11 ][ 432, 22 ][ 648, 153 ]
[ 330, 8 ][ 440, 40 ][ 660, 36 ]
[ 336, 3 ][ 448, 167 ][ 672, 191 ]
[ 342, 14 ][ 456, 40 ][ 684, 47 ]
[ 348, 1 ][ 464, 22 ][ 696, 23 ]
[ 354, 1 ][ 472, 9 ][ 708, 8 ]
[ 360, 34 ][ 480, 208 ][ 720, 324 ]
[ 366, 3 ][ 488, 10 ][ 732, 16 ]
[ 372, 3 ][ 496, 21 ][ 744, 32 ]
[ 378, 33 ][ 504, 40 ][ 756, 122 ]
[ 384, 1 ]Umn(4,64)编号未知[ 768, 57477 ]
[ 390, 8 ][ 520, 34 ][ 780, 49 ]
[ 396, 12 ][ 528, 81 ][ 792, 88 ]
[ 402, 3 ][ 536, 9 ][ 804, 13 ]
[ 408, 1 ][ 544, 55 ][ 816, 54 ]
[ 414, 6 ][ 552, 29 ][ 828, 26 ]
[ 420, 8 ][ 560, 82 ][ 840, 114 ]
gap> F:=FreeGroup(2);;D_8:=F/[F.1^4,F.2^2,F.2*F.1*F.2*(F.1^3)^(-1)];;IdGroup(D_8);
[ 8, 3 ]
gap> F:=FreeGroup(2);;QD_8:=F/[F.1^4,F.2^2,F.2*F.1*F.2*(F.1)^(-1)];;IdGroup(QD_8);
[ 8, 2 ]
gap> F:=FreeGroup(2);;QD_16:=F/[F.1^8,F.2^2,F.2*F.1*F.2*(F.1^3)^(-1)];;IdGroup(QD_16);
[ 16, 8 ]
gap> F:=FreeGroup(2);;QD_32:=F/[F.1^16,F.2^2,F.2*F.1*F.2*(F.1^7)^(-1)];;IdGroup(QD_32);
[ 32, 19 ]
gap> F:=FreeGroup(2);;QD_64:=F/[F.1^32,F.2^2,F.2*F.1*F.2*(F.1^15)^(-1)];;IdGroup(QD_64);
[ 64, 53 ]
gap> F:=FreeGroup(2);;M_16:=F/[F.1^8,F.2^2,F.2*F.1*F.2*(F.1^5)^(-1)];;IdGroup(M_16);
[ 16, 6 ]
gap> F:=FreeGroup(2);;M_32:=F/[F.1^16,F.2^2,F.2*F.1*F.2*(F.1^9)^(-1)];;IdGroup(M_32);
[ 32, 17 ]
gap> F:=FreeGroup(2);;M_64:=F/[F.1^32,F.2^2,F.2*F.1*F.2*(F.1^17)^(-1)];;IdGroup(M_64);
[ 64, 51 ]
gap> V8n:=function(n) F:=FreeGroup(2);;G:=F/[F.1^(2*n),F.2^4,F.1*F.2*F.1*F.2,F.1*F.2^(-1)*F.1*F.2^(-1)];;return G;end;;
gap> QD8n:=function(n) F:=FreeGroup(2);;G:=F/[F.1^(4*n),F.2^2,F.2*F.1*F.2^(-1)*F.1^(1-2*n)];;return G;end;;
gap> M8n:=function(n) F:=FreeGroup(2);;G:=F/[F.1^(4*n),F.2^2,F.2*F.1*F.2^(-1)*F.1^(-1-2*n)];;return G;end;;
gap> for n in [1..63] do Print(IdGroup(V8n(n)),IdGroup(QD8n(n)),"\n");od;
gap> for n in [1..63] do Print(IdGroup(V8n(n)),IdGroup(QD8n(n)),IdGroup(M8n(n)),"\n");od;
[ 8, 3 ][ 8, 2 ][ 8, 3 ]
[ 16, 3 ][ 16, 8 ][ 16, 6 ]
[ 24, 8 ][ 24, 5 ][ 24, 10 ]
[ 32, 9 ][ 32, 19 ][ 32, 17 ]
[ 40, 8 ][ 40, 5 ][ 40, 10 ]
[ 48, 14 ][ 48, 6 ][ 48, 24 ]
[ 56, 7 ][ 56, 4 ][ 56, 9 ]
[ 64, 38 ][ 64, 53 ][ 64, 51 ]
[ 72, 8 ][ 72, 5 ][ 72, 10 ]
[ 80, 14 ][ 80, 6 ][ 80, 24 ]
[ 88, 7 ][ 88, 4 ][ 88, 9 ]
[ 96, 28 ][ 96, 7 ][ 96, 60 ]
[ 104, 8 ][ 104, 5 ][ 104, 10 ]
[ 112, 13 ][ 112, 5 ][ 112, 23 ]
[ 120, 30 ][ 120, 27 ][ 120, 32 ]
[ 128, 147 ][ 128, 162 ][ 128, 160 ]
[ 136, 8 ][ 136, 5 ][ 136, 10 ]
[ 144, 14 ][ 144, 7 ][ 144, 24 ]
[ 152, 7 ][ 152, 4 ][ 152, 9 ]
[ 160, 28 ][ 160, 7 ][ 160, 60 ]
[ 168, 38 ][ 168, 35 ][ 168, 40 ]
[ 176, 13 ][ 176, 5 ][ 176, 23 ]
[ 184, 7 ][ 184, 4 ][ 184, 9 ]
[ 192, 68 ][ 192, 8 ][ 192, 176 ]
[ 200, 8 ][ 200, 5 ][ 200, 10 ]
[ 208, 14 ][ 208, 6 ][ 208, 24 ]
[ 216, 8 ][ 216, 5 ][ 216, 10 ]
[ 224, 27 ][ 224, 6 ][ 224, 59 ]
[ 232, 8 ][ 232, 5 ][ 232, 10 ]
[ 240, 75 ][ 240, 67 ]
[ 248, 7 ][ 248, 4 ]
[ 256, 525 ][ 256, 540 ]
[ 264, 27 ][ 264, 24 ]
[ 272, 14 ][ 272, 6 ]
[ 280, 28 ][ 280, 25 ]
[ 288, 28 ][ 288, 7 ]
[ 296, 8 ][ 296, 5 ]
[ 304, 13 ][ 304, 5 ]
[ 312, 41 ][ 312, 38 ]
[ 320, 67 ][ 320, 7 ]
[ 328, 8 ][ 328, 5 ]
[ 336, 100 ][ 336, 92 ]
[ 344, 7 ][ 344, 4 ]
[ 352, 27 ][ 352, 6 ]
[ 360, 29 ][ 360, 26 ]
[ 368, 13 ][ 368, 5 ]
[ 376, 7 ][ 376, 4 ]
[ 384, 172 ][ 384, 10 ]
[ 392, 7 ][ 392, 4 ]
[ 400, 14 ][ 400, 7 ]
[ 408, 29 ][ 408, 26 ]
[ 416, 28 ][ 416, 7 ]
[ 424, 8 ][ 424, 5 ]
[ 432, 14 ][ 432, 7 ]
[ 440, 38 ][ 440, 35 ]
[ 448, 66 ][ 448, 6 ]
[ 456, 38 ][ 456, 35 ]
[ 464, 14 ][ 464, 6 ]
[ 472, 7 ][ 472, 4 ]
[ 480, 181 ][ 480, 160 ]
[ 488, 8 ][ 488, 5 ]
[ 496, 13 ][ 496, 5 ]
[ 504, 38 ][ 504, 35 ]
gap> Vmn:=function(m,n) F:=FreeGroup(2);;G:=F/[F.1^(2*n),F.2^m,F.1*F.2*F.1*F.2,F.1*F.2^(-1)*F.1*F.2^(-1)];;return G;end;;
gap> for n in [1..63] do Print(IdGroup(Vmn(4,n)),IdGroup(Vmn(6,n)),"\n");od;for n in [64] do Print("Vmn(4,64)编号未知",IdGroup(Vmn(6,n)),"\n");od;for n in [65..70] do Print(IdGroup(Vmn(4,n)),IdGroup(Vmn(6,n)),"\n");od;
[ 8, 3 ][ 12, 4 ]
[ 16, 3 ][ 24, 8 ]
[ 24, 8 ][ 36, 10 ]
[ 32, 9 ][ 48, 15 ]
[ 40, 8 ][ 60, 8 ]
[ 48, 14 ][ 72, 23 ]
[ 56, 7 ][ 84, 8 ]
[ 64, 38 ][ 96, 33 ]
[ 72, 8 ][ 108, 16 ]
[ 80, 14 ][ 120, 12 ]
[ 88, 7 ][ 132, 5 ]
[ 96, 28 ][ 144, 57 ]
[ 104, 8 ][ 156, 11 ]
[ 112, 13 ][ 168, 16 ]
[ 120, 30 ][ 180, 29 ]
[ 128, 147 ][ 192, 78 ]
[ 136, 8 ][ 204, 7 ]
[ 144, 14 ][ 216, 29 ]
[ 152, 7 ][ 228, 8 ]
[ 160, 28 ][ 240, 14 ]
[ 168, 38 ][ 252, 36 ]
[ 176, 13 ][ 264, 9 ]
[ 184, 7 ][ 276, 5 ]
[ 192, 68 ][ 288, 194 ]
[ 200, 8 ][ 300, 7 ]
[ 208, 14 ][ 312, 19 ]
[ 216, 8 ][ 324, 38 ]
[ 224, 27 ][ 336, 30 ]
[ 232, 8 ][ 348, 7 ]
[ 240, 75 ][ 360, 81 ]
[ 248, 7 ][ 372, 8 ]
[ 256, 525 ][ 384, 183 ]
[ 264, 27 ][ 396, 22 ]
[ 272, 14 ][ 408, 11 ]
[ 280, 28 ][ 420, 29 ]
[ 288, 28 ][ 432, 64 ]
[ 296, 8 ][ 444, 11 ]
[ 304, 13 ][ 456, 16 ]
[ 312, 41 ][ 468, 45 ]
[ 320, 67 ][ 480, 14 ]
[ 328, 8 ][ 492, 7 ]
[ 336, 100 ][ 504, 115 ]
[ 344, 7 ][ 516, 8 ]
[ 352, 27 ][ 528, 12 ]
[ 360, 29 ][ 540, 52 ]
[ 368, 13 ][ 552, 9 ]
[ 376, 7 ][ 564, 5 ]
[ 384, 172 ][ 576, 953 ]
[ 392, 7 ][ 588, 8 ]
[ 400, 14 ][ 600, 10 ]
[ 408, 29 ][ 612, 28 ]
[ 416, 28 ][ 624, 33 ]
[ 424, 8 ][ 636, 7 ]
[ 432, 14 ][ 648, 61 ]
[ 440, 38 ][ 660, 30 ]
[ 448, 66 ][ 672, 55 ]
[ 456, 38 ][ 684, 41 ]
[ 464, 14 ][ 696, 11 ]
[ 472, 7 ][ 708, 5 ]
[ 480, 181 ][ 720, 268 ]
[ 488, 8 ][ 732, 11 ]
[ 496, 13 ][ 744, 16 ]
[ 504, 38 ][ 756, 96 ]
Vmn(4,64)编号未知[ 768, 57480 ]
[ 520, 32 ][ 780, 41 ]
[ 528, 73 ][ 792, 71 ]
[ 536, 7 ][ 804, 8 ]
[ 544, 28 ][ 816, 14 ]
[ 552, 27 ][ 828, 22 ]
[ 560, 74 ][ 840, 81 ]
gap> D2n:=function(n) F:=FreeGroup(2);;G:=F/[F.1^n,F.2^2,F.2*F.1*F.2^(-1)*F.1^(1-n)];;return G;end;;
gap> Dih:=function(n) a:=RealPart(E(n));;b:=ImaginaryPart(E(n));;G:=Group([ [ [ 1, 0 ], [ 0, -1 ]], [ [a, b ], [ -b, a ] ] ]);;return G;end;;
gap> for n in [2..64] do Print(IdGroup(D2n(n)),IdGroup(Dih(n)),IdGroup(DihedralGroup(2*n)),"\n");od;
[ 4, 2 ][ 4, 2 ][ 4, 2 ]
[ 6, 1 ][ 6, 1 ][ 6, 1 ]
[ 8, 3 ][ 8, 3 ][ 8, 3 ]
[ 10, 1 ][ 10, 1 ][ 10, 1 ]
[ 12, 4 ][ 12, 4 ][ 12, 4 ]
[ 14, 1 ][ 14, 1 ][ 14, 1 ]
[ 16, 7 ][ 16, 7 ][ 16, 7 ]
[ 18, 1 ][ 18, 1 ][ 18, 1 ]
[ 20, 4 ][ 20, 4 ][ 20, 4 ]
[ 22, 1 ][ 22, 1 ][ 22, 1 ]
[ 24, 6 ][ 24, 6 ][ 24, 6 ]
[ 26, 1 ][ 26, 1 ][ 26, 1 ]
[ 28, 3 ][ 28, 3 ][ 28, 3 ]
[ 30, 3 ][ 30, 3 ][ 30, 3 ]
[ 32, 18 ][ 32, 18 ][ 32, 18 ]
[ 34, 1 ][ 34, 1 ][ 34, 1 ]
[ 36, 4 ][ 36, 4 ][ 36, 4 ]
[ 38, 1 ][ 38, 1 ][ 38, 1 ]
[ 40, 6 ][ 40, 6 ][ 40, 6 ]
[ 42, 5 ][ 42, 5 ][ 42, 5 ]
[ 44, 3 ][ 44, 3 ][ 44, 3 ]
[ 46, 1 ][ 46, 1 ][ 46, 1 ]
[ 48, 7 ][ 48, 7 ][ 48, 7 ]
[ 50, 1 ][ 50, 1 ][ 50, 1 ]
[ 52, 4 ][ 52, 4 ][ 52, 4 ]
[ 54, 1 ][ 54, 1 ][ 54, 1 ]
[ 56, 5 ][ 56, 5 ][ 56, 5 ]
[ 58, 1 ][ 58, 1 ][ 58, 1 ]
[ 60, 12 ][ 60, 12 ][ 60, 12 ]
[ 62, 1 ][ 62, 1 ][ 62, 1 ]
[ 64, 52 ][ 64, 52 ][ 64, 52 ]
[ 66, 3 ][ 66, 3 ][ 66, 3 ]
[ 68, 4 ][ 68, 4 ][ 68, 4 ]
[ 70, 3 ][ 70, 3 ][ 70, 3 ]
[ 72, 6 ][ 72, 6 ][ 72, 6 ]
[ 74, 1 ][ 74, 1 ][ 74, 1 ]
[ 76, 3 ][ 76, 3 ][ 76, 3 ]
[ 78, 5 ][ 78, 5 ][ 78, 5 ]
[ 80, 7 ][ 80, 7 ][ 80, 7 ]
[ 82, 1 ][ 82, 1 ][ 82, 1 ]
[ 84, 14 ][ 84, 14 ][ 84, 14 ]
[ 86, 1 ][ 86, 1 ][ 86, 1 ]
[ 88, 5 ][ 88, 5 ][ 88, 5 ]
[ 90, 3 ][ 90, 3 ][ 90, 3 ]
[ 92, 3 ][ 92, 3 ][ 92, 3 ]
[ 94, 1 ][ 94, 1 ][ 94, 1 ]
[ 96, 6 ][ 96, 6 ][ 96, 6 ]
[ 98, 1 ][ 98, 1 ][ 98, 1 ]
[ 100, 4 ][ 100, 4 ][ 100, 4 ]
[ 102, 3 ][ 102, 3 ][ 102, 3 ]
[ 104, 6 ][ 104, 6 ][ 104, 6 ]
[ 106, 1 ][ 106, 1 ][ 106, 1 ]
[ 108, 4 ][ 108, 4 ][ 108, 4 ]
[ 110, 5 ][ 110, 5 ][ 110, 5 ]
[ 112, 6 ][ 112, 6 ][ 112, 6 ]
[ 114, 5 ][ 114, 5 ][ 114, 5 ]
[ 116, 4 ][ 116, 4 ][ 116, 4 ]
[ 118, 1 ][ 118, 1 ][ 118, 1 ]
[ 120, 28 ][ 120, 28 ][ 120, 28 ]
[ 122, 1 ][ 122, 1 ][ 122, 1 ]
[ 124, 3 ][ 124, 3 ][ 124, 3 ]
[ 126, 5 ][ 126, 5 ][ 126, 5 ]
[ 128, 161 ][ 128, 161 ][ 128, 161 ]
gap> H16n:=function(n) F:=FreeGroup(2);;G:=F/[F.1^(4*n),F.2^4,F.1*F.2*(F.2*F.1^(-1))^(-1)];;return G;end;;
gap> for n in [1..63] do Print(IdGroup(Hmn(4,n)),IdGroup(Hmn(6,n)),IdGroup(Hmn(8,n)),IdGroup(Hmn(12,n)),"\n");od;
[ 4, 1 ][ 6, 2 ][ 8, 1 ][ 12, 2 ]
[ 8, 2 ][ 12, 5 ][ 16, 5 ][ 24, 9 ]
[ 12, 1 ][ 18, 3 ][ 24, 1 ][ 36, 6 ]
[ 16, 4 ][ 24, 10 ][ 32, 12 ][ 48, 22 ]
[ 20, 1 ][ 30, 2 ][ 40, 1 ][ 60, 2 ]
[ 24, 7 ][ 36, 12 ][ 48, 9 ][ 72, 29 ]
[ 28, 1 ][ 42, 4 ][ 56, 1 ][ 84, 4 ]
[ 32, 14 ][ 48, 25 ][ 64, 16 ][ 96, 57 ]
[ 36, 1 ][ 54, 3 ][ 72, 1 ][ 108, 6 ]
[ 40, 7 ][ 60, 10 ][ 80, 9 ][ 120, 19 ]
[ 44, 1 ][ 66, 2 ][ 88, 1 ][ 132, 2 ]
[ 48, 13 ][ 72, 28 ][ 96, 11 ][ 144, 78 ]
[ 52, 1 ][ 78, 4 ][ 104, 1 ][ 156, 4 ]
[ 56, 6 ][ 84, 12 ][ 112, 8 ][ 168, 27 ]
[ 60, 3 ][ 90, 7 ][ 120, 3 ][ 180, 15 ]
[ 64, 47 ][ 96, 61 ][ 128, 103 ][ 192, 172 ]
[ 68, 1 ][ 102, 2 ][ 136, 1 ][ 204, 2 ]
[ 72, 7 ][ 108, 23 ][ 144, 9 ][ 216, 55 ]
[ 76, 1 ][ 114, 4 ][ 152, 1 ][ 228, 4 ]
[ 80, 13 ][ 120, 18 ][ 160, 11 ][ 240, 42 ]
[ 84, 5 ][ 126, 13 ][ 168, 5 ][ 252, 22 ]
[ 88, 6 ][ 132, 7 ][ 176, 8 ][ 264, 16 ]
[ 92, 1 ][ 138, 2 ][ 184, 1 ][ 276, 2 ]
[ 96, 25 ][ 144, 72 ][ 192, 17 ][ 288, 252 ]
[ 100, 1 ][ 150, 2 ][ 200, 1 ][ 300, 2 ]
[ 104, 7 ][ 156, 15 ][ 208, 9 ][ 312, 30 ]
[ 108, 1 ][ 162, 7 ][ 216, 1 ][ 324, 10 ]
[ 112, 12 ][ 168, 26 ][ 224, 10 ][ 336, 67 ]
[ 116, 1 ][ 174, 2 ][ 232, 1 ][ 348, 2 ]
[ 120, 29 ][ 180, 34 ][ 240, 70 ][ 360, 103 ]
[ 124, 1 ][ 186, 4 ][ 248, 1 ][ 372, 4 ]
[ 128, 155 ][ 192, 177 ][ 256, 448 ][ 384, 559 ]
[ 132, 3 ][ 198, 7 ][ 264, 3 ][ 396, 13 ]
[ 136, 7 ][ 204, 9 ][ 272, 9 ][ 408, 18 ]
[ 140, 3 ][ 210, 7 ][ 280, 3 ][ 420, 7 ]
[ 144, 13 ][ 216, 46 ][ 288, 11 ][ 432, 130 ]
[ 148, 1 ][ 222, 4 ][ 296, 1 ][ 444, 4 ]
[ 152, 6 ][ 228, 12 ][ 304, 8 ][ 456, 27 ]
[ 156, 5 ][ 234, 13 ][ 312, 5 ][ 468, 25 ]
[ 160, 25 ][ 240, 36 ][ 320, 16 ][ 480, 96 ]
[ 164, 1 ][ 246, 2 ][ 328, 1 ][ 492, 2 ]
[ 168, 37 ][ 252, 43 ][ 336, 95 ][ 504, 141 ]
[ 172, 1 ][ 258, 4 ][ 344, 1 ][ 516, 4 ]
[ 176, 12 ][ 264, 15 ][ 352, 10 ][ 528, 40 ]
[ 180, 3 ][ 270, 12 ][ 360, 3 ][ 540, 20 ]
[ 184, 6 ][ 276, 7 ][ 368, 8 ][ 552, 16 ]
[ 188, 1 ][ 282, 2 ][ 376, 1 ][ 564, 2 ]
[ 192, 63 ][ 288, 233 ][ 384, 76 ][ 576, 1130 ]
[ 196, 1 ][ 294, 4 ][ 392, 1 ][ 588, 4 ]
[ 200, 7 ][ 300, 9 ][ 400, 9 ][ 600, 18 ]
[ 204, 3 ][ 306, 7 ][ 408, 3 ][ 612, 15 ]
[ 208, 13 ][ 312, 29 ][ 416, 11 ][ 624, 70 ]
[ 212, 1 ][ 318, 2 ][ 424, 1 ][ 636, 2 ]
[ 216, 7 ][ 324, 65 ][ 432, 9 ][ 648, 152 ]
[ 220, 5 ][ 330, 7 ][ 440, 5 ][ 660, 7 ]
[ 224, 24 ][ 336, 61 ][ 448, 15 ][ 672, 157 ]
[ 228, 5 ][ 342, 15 ][ 456, 5 ][ 684, 24 ]
[ 232, 7 ][ 348, 9 ][ 464, 9 ][ 696, 18 ]
[ 236, 1 ][ 354, 2 ][ 472, 1 ][ 708, 2 ]
[ 240, 74 ][ 360, 102 ][ 480, 164 ][ 720, 344 ]
[ 244, 1 ][ 366, 4 ][ 488, 1 ][ 732, 4 ]
[ 248, 6 ][ 372, 12 ][ 496, 8 ][ 744, 27 ]
[ 252, 5 ][ 378, 36 ][ 504, 5 ][ 756, 45 ]
[ 256, 533 ]
[ 272, 13 ]
[ 288, 26 ]
[ 304, 12 ]
[ 320, 62 ]
[ 336, 99 ]
[ 352, 24 ]
[ 368, 12 ]
[ 384, 167 ]
[ 400, 13 ]
[ 416, 25 ]
[ 432, 13 ]
[ 448, 61 ]
[ 464, 13 ]
[ 480, 178 ]
[ 496, 12 ]
gap> Xn:=function(n) F:=FreeGroup(2);;G:=F/[F.1^2,F.2*F.1*F.2^n*(F.1*F.2^2*F.1)^-1];;return G;end;;
gap> for n in [2..9] do Print(IdGroup(Xn(n)),"\n");od;
[ 2, 1 ]
[ 20, 3 ]
[ 48, 33 ]
[ 72, 39 ]
[ 110, 1 ]
[ 480, 964 ]
[ 406, 1 ]
[ 784, 160 ]
gap> Yn:=function(n) F:=FreeGroup(3);;G:=F/[F.1^2,F.2^n,F.3^n,(F.1*F.2)^2,(F.1*F.3)^2,(F.2*F.3)^n,(F.1*F.2*F.3)^2];;return G;end;; gap> for n in [1..15] do Print(IdGroup(Yn(n)),"\n");od;
[ 2, 1 ]
[ 8, 5 ]
[ 18, 4 ]
[ 32, 34 ]
[ 50, 4 ]
[ 72, 49 ]
[ 98, 4 ]
[ 128, 444 ]
[ 162, 16 ]
[ 200, 51 ]
[ 242, 4 ]
[ 288, 731 ]
[ 338, 4 ]
[ 392, 43 ]
[ 450, 33 ]
gap> Zmn:=function(m,n) F:=FreeGroup(2);;G:=F/[F.1^4,F.2^4,(F.1^m*F.2^m)^n,F.1^(-1)*F.2*F.1^(-1)*F.2];;return G;end;;
gap> for n in [1..7] do Print(IdGroup(Zmn(1,n)),IdGroup(Zmn(2,n)),"\n");od;for n in [8] do Print(IdGroup(Zmn(1,n)),Size(Zmn(2,n)),"\n");od;for n in [9..15] do Print(IdGroup(Zmn(1,n)),IdGroup(Zmn(2,n)),"\n");od;
[ 4, 1 ][ 8, 2 ]
[ 16, 3 ][ 32, 6 ]
[ 36, 9 ][ 72, 45 ]
[ 64, 34 ][ 128, 140 ]
[ 100, 12 ][ 200, 48 ]
[ 144, 136 ][ 288, 422 ]
[ 196, 8 ][ 392, 40 ]
[ 256, 517 ]512
[ 324, 35 ][ 648, 295 ]
[ 400, 162 ][ 800, 551 ]
[ 484, 8 ][ 968, 38 ]
[ 576, 2024 ][ 1152, 6843 ]
[ 676, 11 ][ 1352, 47 ]
[ 784, 117 ][ 1568, 378 ]
[ 900, 120 ][ 1800, 719 ]
luatest FreeGroup.lua
GAP[12,1]=T=Q_12=<a,b|a^6=1,b^2=a^3,ba=a^(-1)b>的凯莱表:
1 2 3 4 5 6 7 8 9 10 11 12
2 3 4 5 6 1 8 9 10 11 12 7
3 4 5 6 1 2 9 10 11 12 7 8
4 5 6 1 2 3 10 11 12 7 8 9
5 6 1 2 3 4 11 12 7 8 9 10
6 1 2 3 4 5 12 7 8 9 10 11
7 12 11 10 9 8 4 3 2 1 6 5
8 7 12 11 10 9 5 4 3 2 1 6
9 8 7 12 11 10 6 5 4 3 2 1
10 9 8 7 12 11 1 6 5 4 3 2
11 10 9 8 7 12 2 1 6 5 4 3
12 11 10 9 8 7 3 2 1 6 5 4
function get_len(tb)
local len=0
for k,v in pairs(tb) do
len=len+1
end
return len
end
function simplify0(s)
local ret=s
local n=string.len(ret)
if n==0 then
ret="a0b0"
elseif n==2 then
if(string.sub(ret,1,1)=="a")then
ret=ret.."b0"
elseif(string.sub(ret,1,1)=="b")then
ret="a0"..ret
end
end
return ret
end
function simplify1(s)
local ret=s
local n1=string.find(ret,"a0")
local n2=string.find(ret,"b0")
local n=string.len(ret)
while(n>4 and (n1~=nil or n2~=nil))do
if n1~=nil then
ret,cnt=string.gsub(ret,"a0","")
elseif n2~=nil then
ret,cnt=string.gsub(ret,"b0","")
end
n1=string.find(ret,"a0")
n2=string.find(ret,"b0")
n=string.len(ret)
end
return ret
end
function simplify2(s,r)
local ret=s
local n1=string.find(ret,"a%da%d")
local n2=string.find(ret,"b%db%d")
while((n1~=nil or n2~=nil))do
if n1~=nil then
local sn=tonumber(string.sub(ret,n1+1,n1+1))+tonumber(string.sub(ret,n1+3,n1+3))
sn=sn%6
local s3="a"..sn
if sn==0 then
s3=""
end
ret,cnt=string.gsub(ret,"a%da%d",s3)
elseif n2~=nil then
local sn=tonumber(string.sub(ret,n2+1,n2+1))+tonumber(string.sub(ret,n2+3,n2+3))
local s3=""
if sn==0 then
s3=""
elseif sn==1 then
s3="b1"
elseif sn==2 then
s3=r--"a3"
end
ret,cnt=string.gsub(ret,"b%db%d",s3)
end
n1=string.find(ret,"a%da%d")
n2=string.find(ret,"b%db%d")
n=string.len(ret)
end
return ret
end
function simplify3(s,r)
local ret=s
local n1=string.find(ret,"b%da1b%d")
local n2=string.find(ret,"b0a1")
local n3=string.find(ret,"a1b0")
while((n1~=nil) and (n2==nil and n3==nil))do
local s1=tonumber(string.sub(ret,n1+1,n1+1))
local s2=tonumber(string.sub(ret,n1+5,n1+5))
local s3=""
if s1==1 then
s3=s3..r
else
s3=s3.."b"..(s1-1)..r
end
if s2>1 then
s3=s3.."b"..(s2-1)
end
ret,cnt=string.gsub(ret,"b%da1b%d",s3)
n1=string.find(ret,"b%da1b%d")
n2=string.find(ret,"b0a1")
n3=string.find(ret,"a1b0")
end
return ret
end
function simplify4(s,r)
local ret=s
local n1=string.find(ret,"b1a%d")
local n2=string.find(ret,"b1a0")
while((n1==1) and (n2==nil))do
local s1=tonumber(string.sub(ret,n1+3,n1+3))
local s3=""
if s1==1 then
s3=r
else
s3=r.."a"..(s1-1)
end
ret,cnt=string.gsub(ret,"b1a%d",s3)
n1=string.find(ret,"b1a%d")
n2=string.find(ret,"b1a0")
end
return ret
end
function simplify5(s,r)
local ret=s
local n1=string.find(ret,"a%db1a%d")
local n2=string.find(ret,"a0b1")
local n3=string.find(ret,"b1a0")
while((n1~=nil) and (n2==nil and n3==nil))do
local s1=tonumber(string.sub(ret,n1+1,n1+1))
local s2=tonumber(string.sub(ret,n1+5,n1+5))
local s3=""
if s1==1 then
s3=s3..r
else
s3=s3.."a"..(s1-1)..r
end
if s2==1 then
else
s3=s3.."a"..(s2-1)
end
ret,cnt=string.gsub(ret,"a%db1a%d",s3)
n1=string.find(ret,"a%db1a%d")
n2=string.find(ret,"a0b1")
n3=string.find(ret,"b1a0")
end
return ret
end
function Q12mul(s1,s2)
local ret="a"..s1[1].."b"..s1[2].."a"..s2[1].."b"..s2[2]
ret=simplify1(ret)
ret=simplify2(ret,"a3") --根据b2=a3化简
ret=simplify3(ret,"a2") --根据bab=a2化简
ret=simplify4(ret,"a5b1") --根据ba=a5b化简
ret=simplify5(ret,"b1") --根据aba=b化简
ret=simplify4(ret,"a5b1") --根据ba=a5b化简
ret=simplify2(ret,"a3") --根据b2=a3化简
ret=simplify5(ret,"b1") --根据aba=b化简
ret=simplify2(ret,"a3") --根据b2=a3化简
ret=simplify0(ret)
local i=tonumber(string.sub(ret,2,2))
local j=tonumber(string.sub(ret,4,4))
return i+6*j+1
end
function PrintTable(tb,Mul)
local n=get_len(tb)
for i=1,n,1 do
for j=1,n,1 do
local ij=Mul(tb[i],tb[j])
io.write(ij," ")
end
io.write("\n")
end
end
--T={"a0b0","a1b0","a2b0","a3b0","a4b0","a5b0","a0b1","a1b1","a2b1","a3b1","a4b1","a5b1"}
local T={{0,0},{1,0},{2,0},{3,0},{4,0},{5,0},{0,1},{1,1},{2,1},{3,1},{4,1},{5,1}}
print("GAP[12,1]=T=Q_12=<a,b|a^6=1,b^2=a^3,ba=a^(-1)b>的凯莱表:")
PrintTable(T,Q12mul)
原文:https://www.cnblogs.com/Ivanhan2019/p/12791306.html