有限域上矩阵群(Lua版本)

C++版本在Win7+VC2012下编译:
D:\hxh\bin\LUA资料\LUA\luatest\luatest1>cl /D PRINT_STDOUT /c FGMtx.cpp GroupUtil.cpp
用于 x86 的 Microsoft (R) C/C++ 优化编译器 17.00.50727.1 版版权所有(C) Microsoft Corporation。保留所有权利。

FGMtx.cpp
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xlocale(336) : warning C4530: 使用了 C++ 异常处理程序,但
未启用展开语义。请指定 /EHsc
GroupUtil.cpp
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE\xlocale(336) : warning C4530: 使用了 C++ 异常处理程序,但
未启用展开语义。请指定 /EHsc
正在生成代码...

D:\hxh\bin\LUA资料\LUA\luatest\luatest1>link /OUT:FGMtx.exe FGMtx.obj GroupUtil.obj
Microsoft (R) Incremental Linker Version 11.00.50727.1
Copyright (C) Microsoft Corporation.  All rights reserved.


D:\hxh\bin\LUA资料\LUA\luatest\luatest1>FGMtx
请输入群的矩阵表示:GL;2;2;1,1,0,1;1,0,1,1
[[1,0,0,1],[1,1,0,1],[1,0,1,1],[0,1,1,1],[1,1,1,0],[0,1,1,0]]
1 2 3 4 5 6
2 1 4 3 6 5
3 5 1 6 2 4
4 6 2 5 1 3
5 3 6 1 4 2
6 4 5 2 3 1
计算矩阵群GL(2,2)_6的凯莱表完毕!

gap> G:=GL(3,2);;S:=AllSubgroups(G);;N:=NormalSubgroups(G);;S1:=[];;for g in S do if not (IdGroup(g) in S1)then Add(S1,IdGroup(g));fi;od;List(S1);List(N,IdGroup);Print("|S(G)|=",Size(S),",|S1(G)|=",Size(S1),",|N(G)|=",Size(N),"\n");
[ [ 1, 1 ], [ 2, 1 ], [ 3, 1 ], [ 4, 2 ], [ 4, 1 ], [ 6, 1 ], [ 7, 1 ], [ 8, 3 ], [ 12, 3 ], [ 21, 1 ], [ 24, 12 ],
  [ 168, 42 ] ]
[ [ 1, 1 ], [ 168, 42 ] ]
|S(G)|=179,|S1(G)|=12,|N(G)|=2
gap> G:=GL(2,5);;S:=AllSubgroups(G);;N:=NormalSubgroups(G);;S1:=[];;for g in S do if not (IdGroup(g) in S1)then Add(S1,IdGroup(g));fi;od;List(S1);List(N,IdGroup);Print("|S(G)|=",Size(S),",|S1(G)|=",Size(S1),",|N(G)|=",Size(N),"\n");
[ [ 1, 1 ], [ 2, 1 ], [ 3, 1 ], [ 4, 1 ], [ 4, 2 ], [ 5, 1 ], [ 6, 2 ], [ 6, 1 ], [ 8, 4 ], [ 8, 1 ], [ 8, 3 ],
  [ 8, 2 ], [ 10, 1 ], [ 10, 2 ], [ 12, 4 ], [ 12, 2 ], [ 12, 1 ], [ 16, 13 ], [ 16, 2 ], [ 16, 6 ], [ 20, 4 ],
  [ 20, 1 ], [ 20, 3 ], [ 20, 2 ], [ 24, 3 ], [ 24, 5 ], [ 24, 1 ], [ 24, 2 ], [ 32, 11 ], [ 40, 12 ], [ 40, 5 ],
  [ 48, 33 ], [ 48, 5 ], [ 80, 30 ], [ 96, 67 ], [ 120, 5 ], [ 240, 93 ], [ 480, 218 ] ]
[ [ 1, 1 ], [ 2, 1 ], [ 120, 5 ], [ 4, 1 ], [ 240, 93 ], [ 480, 218 ] ]
|S(G)|=466,|S1(G)|=38,|N(G)|=6 
gap> G:=GL(2,3);;S:=AllSubgroups(G);;N:=NormalSubgroups(G);;S1:=[];;for g in S do if not (IdGroup(g) in S1)then Add(S1,IdGroup(g));fi;od;List(S1);List(N,IdGroup);Print("|S(G)|=",Size(S),",|S1(G)|=",Size(S1),",|N(G)|=",Size(N),"\n");
[ [ 1, 1 ], [ 2, 1 ], [ 3, 1 ], [ 4, 2 ], [ 4, 1 ], [ 6, 2 ], [ 6, 1 ], [ 8, 4 ], [ 8, 1 ], [ 8, 3 ], [ 12, 4 ],
  [ 16, 8 ], [ 24, 3 ], [ 48, 29 ] ]
[ [ 48, 29 ], [ 24, 3 ], [ 8, 4 ], [ 2, 1 ], [ 1, 1 ] ]
|S(G)|=55,|S1(G)|=14,|N(G)|=5
gap> G:=SO(-1,2,23);;S:=AllSubgroups(G);;N:=NormalSubgroups(G);;S1:=[];;for g in S do if not (IdGroup(g) in S1)then Add(S1,IdGroup(g));fi;od;List(S1);List(N,IdGroup);Print("|S(G)|=",Size(S),",|S1(G)|=",Size(S1),",|N(G)|=",Size(N),"\n");
[ [ 1, 1 ], [ 2, 1 ], [ 3, 1 ], [ 4, 1 ], [ 6, 2 ], [ 8, 1 ], [ 12, 2 ], [ 24, 2 ] ]
[ [ 24, 2 ], [ 12, 2 ], [ 6, 2 ], [ 8, 1 ], [ 4, 1 ], [ 2, 1 ], [ 3, 1 ], [ 1, 1 ] ]
|S(G)|=8,|S1(G)|=8,|N(G)|=8
gap> G:=SO(1,2,23);;S:=AllSubgroups(G);;N:=NormalSubgroups(G);;S1:=[];;for g in S do if not (IdGroup(g) in S1)then Add(S1,IdGroup(g));fi;od;List(S1);List(N,IdGroup);Print("|S(G)|=",Size(S),",|S1(G)|=",Size(S1),",|N(G)|=",Size(N),"\n");
[ [ 1, 1 ], [ 2, 1 ], [ 11, 1 ], [ 22, 2 ] ]
[ [ 22, 2 ], [ 2, 1 ], [ 11, 1 ], [ 1, 1 ] ]
|S(G)|=4,|S1(G)|=4,|N(G)|=4
gap> G:=GO(-1,2,23);;S:=AllSubgroups(G);;N:=NormalSubgroups(G);;S1:=[];;for g in S do if not (IdGroup(g) in S1)then Add(S1,IdGroup(g));fi;od;List(S1);List(N,IdGroup);Print("|S(G)|=",Size(S),",|S1(G)|=",Size(S1),",|N(G)|=",Size(N),"\n");
[ [ 1, 1 ], [ 2, 1 ], [ 3, 1 ], [ 4, 1 ], [ 4, 2 ], [ 6, 2 ], [ 6, 1 ], [ 8, 3 ], [ 8, 1 ], [ 12, 2 ], [ 12, 4 ],
  [ 16, 7 ], [ 24, 6 ], [ 24, 2 ], [ 48, 7 ] ]
[ [ 48, 7 ], [ 24, 2 ], [ 24, 6 ], [ 24, 6 ], [ 12, 2 ], [ 6, 2 ], [ 8, 1 ], [ 4, 1 ], [ 2, 1 ], [ 3, 1 ], [ 1, 1 ] ]
|S(G)|=68,|S1(G)|=15,|N(G)|=11
gap> G:=GO(1,2,23);;S:=AllSubgroups(G);;N:=NormalSubgroups(G);;S1:=[];;for g in S do if not (IdGroup(g) in S1)then Add(S1,IdGroup(g));fi;od;List(S1);List(N,IdGroup);Print("|S(G)|=",Size(S),",|S1(G)|=",Size(S1),",|N(G)|=",Size(N),"\n");
[ [ 1, 1 ], [ 2, 1 ], [ 4, 2 ], [ 11, 1 ], [ 22, 1 ], [ 22, 2 ], [ 44, 3 ] ]
[ [ 44, 3 ], [ 22, 2 ], [ 22, 1 ], [ 22, 1 ], [ 2, 1 ], [ 11, 1 ], [ 1, 1 ] ]
|S(G)|=40,|S1(G)|=7,|N(G)|=7
luatest ClassicalGroups.lua
GAP4[48,29]=GL(2,3)是rank=2的(9-1)(9-3)=48阶群:
1->[[1,0],[0,1]]
2->[[0,1],[1,1]]
3->[[1,1],[0,1]]
4->[[1,1],[1,2]]
5->[[0,1],[1,2]]
6->[[1,2],[2,0]]
7->[[1,2],[1,0]]
8->[[2,0],[0,2]]
9->[[1,0],[2,2]]
10->[[0,2],[2,2]]
11->[[2,2],[0,2]]
12->[[2,2],[2,1]]
13->[[0,2],[2,1]]
14->[[2,1],[1,0]]
15->[[2,1],[2,0]]
16->[[2,0],[1,1]]
17->[[1,2],[1,1]]
18->[[1,2],[0,1]]
19->[[2,0],[1,2]]
20->[[1,0],[1,2]]
21->[[0,2],[2,0]]
22->[[2,2],[1,0]]
23->[[2,1],[2,2]]
24->[[2,1],[0,2]]
25->[[1,0],[2,1]]
26->[[2,0],[2,1]]
27->[[0,1],[1,0]]
28->[[1,1],[2,0]]
29->[[0,2],[1,2]]
30->[[2,2],[1,2]]
31->[[2,2],[2,0]]
32->[[0,2],[1,0]]
33->[[0,1],[2,1]]
34->[[1,1],[2,1]]
35->[[1,1],[1,0]]
36->[[0,1],[2,0]]
37->[[2,0],[0,1]]
38->[[1,0],[1,1]]
39->[[0,2],[1,1]]
40->[[2,2],[0,1]]
41->[[1,0],[0,2]]
42->[[2,0],[2,2]]
43->[[0,1],[2,2]]
44->[[1,1],[0,2]]
45->[[1,2],[0,2]]
46->[[1,2],[2,2]]
47->[[2,1],[0,1]]
48->[[2,1],[1,1]]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
2 4 5 6 7 8 9 10 11 12 13 14 15 1 16 3 28 27 45 46 42 41 22 21 47 48 38 37 17 18 19 20 23 24 25 26 33 34 35 36 29 30 31 32 39 40 43 44
3 17 18 19 20 21 22 11 10 23 24 25 26 27 28 2 16 1 29 30 31 32 9 8 33 34 35 36 4 5 6 7 12 13 14 15 47 48 38 37 45 46 42 41 44 43 40 39
4 6 7 8 9 10 11 12 13 14 15 1 16 2 3 5 37 38 39 40 30 29 41 42 43 44 34 33 28 27 45 46 22 21 47 48 23 24 25 26 17 18 19 20 35 36 31 32
5 28 27 45 46 42 41 13 12 22 21 47 48 38 37 4 3 2 17 18 19 20 11 10 23 24 25 26 6 7 8 9 14 15 1 16 43 44 34 33 39 40 30 29 32 31 36 35
6 8 9 10 11 12 13 14 15 1 16 2 3 4 5 7 33 34 35 36 18 17 29 30 31 32 24 23 37 38 39 40 41 42 43 44 22 21 47 48 28 27 45 46 25 26 19 20
7 37 38 39 40 30 29 15 14 41 42 43 44 34 33 6 5 4 28 27 45 46 13 12 22 21 47 48 8 9 10 11 1 16 2 3 31 32 24 23 35 36 18 17 20 19 26 25
8 10 11 12 13 14 15 1 16 2 3 4 5 6 7 9 23 24 25 26 27 28 17 18 19 20 21 22 33 34 35 36 29 30 31 32 41 42 43 44 37 38 39 40 47 48 45 46
9 33 34 35 36 18 17 16 1 29 30 31 32 24 23 8 7 6 37 38 39 40 15 14 41 42 43 44 10 11 12 13 2 3 4 5 19 20 21 22 25 26 27 28 46 45 48 47
10 12 13 14 15 1 16 2 3 4 5 6 7 8 9 11 22 21 47 48 38 37 28 27 45 46 42 41 23 24 25 26 17 18 19 20 29 30 31 32 33 34 35 36 43 44 39 40
11 23 24 25 26 27 28 3 2 17 18 19 20 21 22 10 9 8 33 34 35 36 16 1 29 30 31 32 12 13

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值