生成2*n*n阶群Y_n=(C_n×C_n):C_2的凯莱表Yn.exe(C++版本)

D:\go20190906\src\SmallRing>cl /D PRINT_STDOUT /c Yn.cpp
用于 x86 的 Microsoft (R) C/C++ 优化编译器 17.00.50727.1 版版权所有(C) Microsoft Corporation。保留所有权利。

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

D:\go20190906\src\SmallRing>link /OUT:Yn.exe Yn.obj
Microsoft (R) Incremental Linker Version 11.00.50727.1
Copyright (C) Microsoft Corporation.  All rights reserved.


D:\go20190906\src\SmallRing>Yn 1
2阶群Y_1的不变量N0=[1,1]
1 2
2 1
请按任意键继续. . .

D:\go20190906\src\SmallRing>Yn 2
8阶群Y_2的不变量N0=[1,7,0,0]
1 2 3 4 5 6 7 8
2 1 4 3 6 5 8 7
3 4 1 2 7 8 5 6
4 3 2 1 8 7 6 5
5 6 7 8 1 2 3 4
6 5 8 7 2 1 4 3
7 8 5 6 3 4 1 2
8 7 6 5 4 3 2 1
请按任意键继续. . .

D:\go20190906\src\SmallRing>Yn 3
18阶群Y_3的不变量N0=[1,9,8,0,0,0]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
2 1 6 5 4 3 14 13 18 17 16 15 8 7 12 11 10 9
3 4 5 6 1 2 9 10 11 12 7 8 15 16 17 18 13 14
4 3 2 1 6 5 16 15 14 13 18 17 10 9 8 7 12 11
5 6 1 2 3 4 11 12 7 8 9 10 17 18 13 14 15 16
6 5 4 3 2 1 18 17 16 15 14 13 12 11 10 9 8 7
7 8 9 10 11 12 13 14 15 16 17 18 1 2 3 4 5 6
8 7 12 11 10 9 2 1 6 5 4 3 14 13 18 17 16 15
9 10 11 12 7 8 15 16 17 18 13 14 3 4 5 6 1 2
10 9 8 7 12 11 4 3 2 1 6 5 16 15 14 13 18 17
11 12 7 8 9 10 17 18 13 14 15 16 5 6 1 2 3 4
12 11 10 9 8 7 6 5 4 3 2 1 18 17 16 15 14 13
13 14 15 16 17 18 1 2 3 4 5 6 7 8 9 10 11 12
14 13 18 17 16 15 8 7 12 11 10 9 2 1 6 5 4 3
15 16 17 18 13 14 3 4 5 6 1 2 9 10 11 12 7 8
16 15 14 13 18 17 10 9 8 7 12 11 4 3 2 1 6 5
17 18 13 14 15 16 5 6 1 2 3 4 11 12 7 8 9 10
18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
请按任意键继续. . .

D:\go20190906\src\SmallRing>Yn 4
32阶群Y_4的不变量N0=[1,19,12,0,0,0]
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
2 1 8 7 6 5 4 3 26 25 32 31 30 29 28 27 18 17 24 23 22 21 20 19 10 9 16 15 14 13 12 11
3 4 5 6 7 8 1 2 11 12 13 14 15 16 9 10 19 20 21 22 23 24 17 18 27 28 29 30 31 32 25 26
4 3 2 1 8 7 6 5 28 27 26 25 32 31 30 29 20 19 18 17 24 23 22 21 12 11 10 9 16 15 14 13
5 6 7 8 1 2 3 4 13 14 15 16 9 10 11 12 21 22 23 24 17 18 19 20 29 30 31 32 25 26 27 28
6 5 4 3 2 1 8 7 30 29 28 27 26 25 32 31 22 21 20 19 18 17 24 23 14 13 12 11 10 9 16 15
7 8 1 2 3 4 5 6 15 16 9 10 11 12 13 14 23 24 17 18 19 20 21 22 31 32 25 26 27 28 29 30
8 7 6 5 4 3 2 1 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 1 2 3 4 5 6 7 8
10 9 16 15 14 13 12 11 2 1 8 7 6 5 4 3 26 25 32 31 30 29 28 27 18 17 24 23 22 21 20 19
11 12 13 14 15 16 9 10 19 20 21 22 23 24 17 18 27 28 29 30 31 32 25 26 3 4 5 6 7 8 1 2
12 11 10 9 16 15 14 13 4 3 2 1 8 7 6 5 28 27 26 25 32 31 30 29 20 19 18 17 24 23 22 21
13 14 15 16 9 10 11 12 21 22 23 24 17 18 19 20 29 30 31 32 25 26 27 28 5 6 7 8 1 2 3 4
14 13 12 11 10 9 16 15 6 5 4 3 2 1 8 7 30 29 28 27 26 25 32 31 22 21 20 19 18 17 24 23
15 16 9 10 11 12 13 14 23 24 17 18 19 20 21 22 31 32 25 26 27 28 29 30 7 8 1 2 3 4 5 6
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 17 24 23 22 21 20 19 10 9 16 15 14 13 12 11 2 1 8 7 6 5 4 3 26 25 32 31 30 29 28 27
19 20 21 22 23 24 17 18 27 28 29 30 31 32 25 26 3 4 5 6 7 8 1 2 11 12 13 14 15 16 9 10
20 19 18 17 24 23 22 21 12 11 10 9 16 15 14 13 4 3 2 1 8 7 6 5 28 27 26 25 32 31 30 29
21 22 23 24 17 18 19 20 29 30 31 32 25 26 27 28 5 6 7 8 1 2 3 4 13 14 15 16 9 10 11 12
22 21 20 19 18 17 24 23 14 13 12 11 10 9 16 15 6 5 4 3 2 1 8 7 30 29 28 27 26 25 32 31
23 24 17 18 19 20 21 22 31 32 25 26 27 28 29 30 7 8 1 2 3 4 5 6 15 16 9 10 11 12 13 14
24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 32 31 30 29 28 27 26 25
25 26 27 28 29 30 31 32 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
26 25 32 31 30 29 28 27 18 17 24 23 22 21 20 19 10 9 16 15 14 13 12 11 2 1 8 7 6 5 4 3
27 28 29 30 31 32 25 26 3 4 5 6 7 8 1 2 11 12 13 14 15 16 9 10 19 20 21 22 23 24 17 18
28 27 26 25 32 31 30 29 20 19 18 17 24 23 22 21 12 11 10 9 16 15 14 13 4 3 2 1 8 7 6 5
29 30 31 32 25 26 27 28 5 6 7 8 1 2 3 4 13 14 15 16 9 10 11 12 21 22 23 24 17 18 19 20
30 29 28 27 26 25 32 31 22 21 20 19 18 17 24 23 14 13 12 11 10 9 16 15 6 5 4 3 2 1 8 7
31 32 25 26 27 28 29 30 7 8 1 2 3 4 5 6 15 16 9 10 11 12 13 14 23 24 17 18 19 20 21 22
32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
请按任意键继续. . .

D:\go20190906\src\SmallRing>Yn 5
50阶群Y_5的不变量N0=[1,25,24,0,0,0]
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 49 50
2 1 10 9 8 7 6 5 4 3 42 41 50 49 48 47 46 45 44 43 32 31 40 39 38 37 36 35 34 33 22 21 30 29 28 27 26 25 24 23 12 11 20
19 18 17 16 15 14 13
3 4 5 6 7 8 9 10 1 2 13 14 15 16 17 18 19 20 11 12 23 24 25 26 27 28 29 30 21 22 33 34 35 36 37 38 39 40 31 32 43 44 45
46 47 48 49 50 41 42
4 3 2 1 10 9 8 7 6 5 44 43 42 41 50 49 48 47 46 45 34 33 32 31 40 39 38 37 36 35 24 23 22 21 30 29 28 27 26 25 14 13 12
11 20 19 18 17 16 15
5 6 7 8 9 10 1 2 3 4 15 16 17 18 19 20 11 12 13 14 25 26 27 28 29 30 21 22 23 24 35 36 37 38 39 40 31 32 33 34 45 46 47
48 49 50 41 42 43 44
6 5 4 3 2 1 10 9 8 7 46 45 44 43 42 41 50 49 48 47 36 35 34 33 32 31 40 39 38 37 26 25 24 23 22 21 30 29 28 27 16 15 14
13 12 11 20 19 18 17
7 8 9 10 1 2 3 4 5 6 17 18 19 20 11 12 13 14 15 16 27 28 29 30 21 22 23 24 25 26 37 38 39 40 31 32 33 34 35 36 47 48 49
50 41 42 43 44 45 46
8 7 6 5 4 3 2 1 10 9 48 47 46 45 44 43 42 41 50 49 38 37 36 35 34 33 32 31 40 39 28 27 26 25 24 23 22 21 30 29 18 17 16
15 14 13 12 11 20 19
9 10 1 2 3 4 5 6 7 8 19 20 11 12 13 14 15 16 17 18 29 30 21 22 23 24 25 26 27 28 39 40 31 32 33 34 35 36 37 38 49 50 41
42 43 44 45 46 47 48
10 9 8 7 6 5 4 3 2 1 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18
17 16 15 14 13 12 11
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 49 50
1 2 3 4 5 6 7 8 9 10
12 11 20 19 18 17 16 15 14 13 2 1 10 9 8 7 6 5 4 3 42 41 50 49 48 47 46 45 44 43 32 31 40 39 38 37 36 35 34 33 22 21 30
29 28 27 26 25 24 23
13 14 15 16 17 18 19 20 11 12 23 24 25 26 27 28 29 30 21 22 33 34 35 36 37 38 39 40 31 32 43 44 45 46 47 48 49 50 41 42
3 4 5 6 7 8 9 10 1 2
14 13 12 11 20 19 18 17 16 15 4 3 2 1 10 9 8 7 6 5 44 43 42 41 50 49 48 47 46 45 34 33 32 31 40 39 38 37 36 35 24 23 22
21 30 29 28 27 26 25
15 16 17 18 19 20 11 12 13 14 25 26 27 28 29 30 21 22 23 24 35 36 37 38 39 40 31 32 33 34 45 46 47 48 49 50 41 42 43 44
5 6 7 8 9 10 1 2 3 4
16 15 14 13 12 11 20 19 18 17 6 5 4 3 2 1 10 9 8 7 46 45 44 43 42 41 50 49 48 47 36 35 34 33 32 31 40 39 38 37 26 25 24
23 22 21 30 29 28 27
17 18 19 20 11 12 13 14 15 16 27 28 29 30 21 22 23 24 25 26 37 38 39 40 31 32 33 34 35 36 47 48 49 50 41 42 43 44 45 46
7 8 9 10 1 2 3 4 5 6
18 17 16 15 14 13 12 11 20 19 8 7 6 5 4 3 2 1 10 9 48 47 46 45 44 43 42 41 50 49 38 37 36 35 34 33 32 31 40 39 28 27 26
25 24 23 22 21 30 29
19 20 11 12 13 14 15 16 17 18 29 30 21 22 23 24 25 26 27 28 39 40 31 32 33 34 35 36 37 38 49 50 41 42 43 44 45 46 47 48
9 10 1 2 3 4 5 6 7 8
20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28
27 26 25 24 23 22 21
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 49 50 1 2 3 4 5 6 7 8 9 10 11 12 13
14 15 16 17 18 19 20
22 21 30 29 28 27 26 25 24 23 12 11 20 19 18 17 16 15 14 13 2 1 10 9 8 7 6 5 4 3 42 41 50 49 48 47 46 45 44 43 32 31 40
39 38 37 36 35 34 33
23 24 25 26 27 28 29 30 21 22 33 34 35 36 37 38 39 40 31 32 43 44 45 46 47 48 49 50 41 42 3 4 5 6 7 8 9 10 1 2 13 14 15
16 17 18 19 20 11 12
24 23 22 21 30 29 28 27 26 25 14 13 12 11 20 19 18 17 16 15 4 3 2 1 10 9 8 7 6 5 44 43 42 41 50 49 48 47 46 45 34 33 32
31 40 39 38 37 36 35
25 26 27 28 29 30 21 22 23 24 35 36 37 38 39 40 31 32 33 34 45 46 47 48 49 50 41 42 43 44 5 6 7 8 9 10 1 2 3 4 15 16 17
18 19 20 11 12 13 14
26 25 24 23 22 21 30 29 28 27 16 15 14 13 12 11 20 19 18 17 6 5 4 3 2 1 10 9 8 7 46 45 44 43 42 41 50 49 48 47 36 35 34
33 32 31 40 39 38 37
27 28 29 30 21 22 23 24 25 26 37 38 39 40 31 32 33 34 35 36 47 48 49 50 41 42 43 44 45 46 7 8 9 10 1 2 3 4 5 6 17 18 19
20 11 12 13 14 15 16
28 27 26 25 24 23 22 21 30 29 18 17 16 15 14 13 12 11 20 19 8 7 6 5 4 3 2 1 10 9 48 47 46 45 44 43 42 41 50 49 38 37 36
35 34 33 32 31 40 39
29 30 21 22 23 24 25 26 27 28 39 40 31 32 33 34 35 36 37 38 49 50 41 42 43 44 45 46 47 48 9 10 1 2 3 4 5 6 7 8 19 20 11
12 13 14 15 16 17 18
30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 50 49 48 47 46 45 44 43 42 41 40 39 38
37 36 35 34 33 32 31
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 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
32 31 40 39 38 37 36 35 34 33 22 21 30 29 28 27 26 25 24 23 12 11 20 19 18 17 16 15 14 13 2 1 10 9 8 7 6 5 4 3 42 41 50
49 48 47 46 45 44 43
33 34 35 36 37 38 39 40 31 32 43 44 45 46 47 48 49 50 41 42 3 4 5 6 7 8 9 10 1 2 13 14 15 16 17 18 19 20 11 12 23 24 25
26 27 28 29 30 21 22
34 33 32 31 40 39 38 37 36 35 24 23 22 21 30 29 28 27 26 25 14 13 12 11 20 19 18 17 16 15 4 3 2 1 10 9 8 7 6 5 44 43 42
41 50 49 48 47 46 45
35 36 37 38 39 40 31 32 33 34 45 46 47 48 49 50 41 42 43 44 5 6 7 8 9 10 1 2 3 4 15 16 17 18 19 20 11 12 13 14 25 26 27
28 29 30 21 22 23 24
36 35 34 33 32 31 40 39 38 37 26 25 24 23 22 21 30 29 28 27 16 15 14 13 12 11 20 19 18 17 6 5 4 3 2 1 10 9 8 7 46 45 44
43 42 41 50 49 48 47
37 38 39 40 31 32 33 34 35 36 47 48 49 50 41 42 43 44 45 46 7 8 9 10 1 2 3 4 5 6 17 18 19 20 11 12 13 14 15 16 27 28 29
30 21 22 23 24 25 26
38 37 36 35 34 33 32 31 40 39 28 27 26 25 24 23 22 21 30 29 18 17 16 15 14 13 12 11 20 19 8 7 6 5 4 3 2 1 10 9 48 47 46
45 44 43 42 41 50 49
39 40 31 32 33 34 35 36 37 38 49 50 41 42 43 44 45 46 47 48 9 10 1 2 3 4 5 6 7 8 19 20 11 12 13 14 15 16 17 18 29 30 21
22 23 24 25 26 27 28
40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 50 49 48
47 46 45 44 43 42 41
41 42 43 44 45 46 47 48 49 50 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
42 41 50 49 48 47 46 45 44 43 32 31 40 39 38 37 36 35 34 33 22 21 30 29 28 27 26 25 24 23 12 11 20 19 18 17 16 15 14 13
2 1 10 9 8 7 6 5 4 3
43 44 45 46 47 48 49 50 41 42 3 4 5 6 7 8 9 10 1 2 13 14 15 16 17 18 19 20 11 12 23 24 25 26 27 28 29 30 21 22 33 34 35
36 37 38 39 40 31 32
44 43 42 41 50 49 48 47 46 45 34 33 32 31 40 39 38 37 36 35 24 23 22 21 30 29 28 27 26 25 14 13 12 11 20 19 18 17 16 15
4 3 2 1 10 9 8 7 6 5
45 46 47 48 49 50 41 42 43 44 5 6 7 8 9 10 1 2 3 4 15 16 17 18 19 20 11 12 13 14 25 26 27 28 29 30 21 22 23 24 35 36 37
38 39 40 31 32 33 34
46 45 44 43 42 41 50 49 48 47 36 35 34 33 32 31 40 39 38 37 26 25 24 23 22 21 30 29 28 27 16 15 14 13 12 11 20 19 18 17
6 5 4 3 2 1 10 9 8 7
47 48 49 50 41 42 43 44 45 46 7 8 9 10 1 2 3 4 5 6 17 18 19 20 11 12 13 14 15 16 27 28 29 30 21 22 23 24 25 26 37 38 39
40 31 32 33 34 35 36
48 47 46 45 44 43 42 41 50 49 38 37 36 35 34 33 32 31 40 39 28 27 26 25 24 23 22 21 30 29 18 17 16 15 14 13 12 11 20 19
8 7 6 5 4 3 2 1 10 9
49 50 41 42 43 44 45 46 47 48 9 10 1 2 3 4 5 6 7 8 19 20 11 12 13 14 15 16 17 18 29 30 21 22 23 24 25 26 27 28 39 40 31
32 33 34 35 36 37 38
50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11
10 9 8 7 6 5 4 3 2 1

//  生成2*n*n阶群Y_n=(C_n×C_n):C_2的凯莱表Yn.exe
#include <iostream>
#include <vector>
#include <string>
using namespace std;

vector<vector<int> > ZnAddTable(int n)
{
    vector<vector<int> > ret(n,vector<int>(n,0));
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            ret[i][j]=(i+j)%n+1;
        }
    }
    return ret;    
}

vector<int> IsLegalMtx(const vector<vector<int>> &mtx)
{
 vector<int> ret(3);
 int illegal=-1;
 ret[1]=mtx.size();
 if(ret[1]==0)
 {
  ret[0]=illegal;//不是合法矩阵
  return ret;
 }
 ret[2]=mtx[0].size();
 if(ret[2]==0)
 {
  ret[0]=illegal;//不是合法矩阵
  return ret;
 }
 for(int i=1;i<ret[1];i++)
 {
  if(mtx[i].size()!=ret[2])
  {
   ret[0]=illegal;//不是合法矩阵
   return ret;
  }
 }
 ret[0]=0;//是合法矩阵
 return ret;
}

vector<vector<int>> DirectProduct(const vector<vector<int>> &A,const vector<vector<int>> &B)
{
 vector<vector<int>> C;
 vector<int> AFlag=IsLegalMtx(A);
 if(AFlag[0]==-1)
  return C;
 vector<int> BFlag=IsLegalMtx(B);
 if(BFlag[0]==-1)
  return C;
 int nB=BFlag[1];
 int n=AFlag[1]*BFlag[1];

 for(int a=0;a<n;a++)
 {
  vector<int> iRow;
  for(int b=0;b<n;b++)
  {
   int aj=a%nB;
   int ai=a/nB;
   int bj=b%nB;
   int bi=b/nB;
   int i=A[ai][bi]-1;
   int j=B[aj][bj]-1;
   int c=nB*i+j+1;
   iRow.push_back(c);
  }
  C.push_back(iRow);
 }
 return C;
}

// 半直积群G:C2
vector<vector<int>> GC2(const vector<vector<int>> &A)
{
    vector<vector<int>> C;
    vector<int> AFlag=IsLegalMtx(A);
    if(AFlag[0]==-1)
        return C;
    
    vector<vector<int>> B;
    vector<int> v1;
    v1.push_back(1);
    v1.push_back(2);
    vector<int> v2;
    v2.push_back(2);
    v2.push_back(1);
    B.push_back(v1);
    B.push_back(v2);

    vector<int> BFlag=IsLegalMtx(B);
    if(BFlag[0]==-1)
        return C;
    int nB=BFlag[1];
    int n=AFlag[1]*BFlag[1];

    for(int a=0;a<n;a++)
    {
        vector<int> iRow;
        for(int b=0;b<n;b++)
        {
            int aj=a%nB;
            int ai=a/nB;
            int bj=b%nB;
            int bi=b/nB;
            int bii=bi;
            //aj不是C_2={0,1}的单位元0
            if(aj==1)
            {
                for(int ii=0;ii<AFlag[1];ii++)
                {
                    if(A[bi][ii]==1)
                    {
                        bii=ii;
                        break;
                    }
                }
            }
            int i=A[ai][bii]-1;
            int j=B[aj][bj]-1;
            int c=nB*i+j+1;
            iRow.push_back(c);
        }
        C.push_back(iRow);
    }
    return C;
}

vector<int>  Factors(int n)
{
 vector<int> ret;
 if(n<1)
  return ret;
 for(int i=1;i<=n;i++)
 {
  if(n%i==0)
  {
   ret.push_back(i);
  }
 }
 return ret;
}

// 未知n阶群的群元的阶
int getGnEOrder(const vector<vector<int>> &A,int a)
{
 vector<int> AFlag=IsLegalMtx(A);
 if(AFlag[0]==-1)
  return -1;
 int n=AFlag[1];
 if(a<0||a>=n)
  return -1;
 int t=0;
 for(int i=1;i<=n;i++)
 {
  t=A[t][a]-1;
  if(t==0)
   return i;
 }
 return -1;
}

string calN0(const vector<vector<int>> &A)
{
 int n=A.size();
 vector<int> vOrders=Factors(n);
 vector<int> vCounts(n+1);
 for(int i=0;i<n;i++)
 {
  int ord=getGnEOrder(A,i);
  vCounts[ord]=vCounts[ord]+1;
 }
 string str="[";
 for(int i=0;i<vOrders.size();i++)
 {
  char sz[40]={0};
  sprintf(sz,"%d",vCounts[vOrders[i]]);
  str+=sz;
  if(i<vOrders.size()-1)
      str+=",";
 }
 str+="]";
 return str;
}

int main(int argc, char **argv)
{
    char sz[100]={0};
    if(argc<2)
    {
        printf("请输入n:");
        scanf("%s",sz);
    }
    else
        strcpy(sz,argv[1]);

    int n=atoi(sz);
    char sz1[100]={0};
    sprintf(sz1,"Y%d.txt",n);
    
    vector<vector<int> > Cn=ZnAddTable(n);
    vector<vector<int> > Yn=GC2(DirectProduct(Cn,Cn));
    int m=Yn.size();
    string N0=calN0(Yn);
    printf("%d阶群Y_%d的不变量N0=%s\n",m,n,N0.c_str());
    
    // 生成Y_n的凯莱表
    FILE *fp=fopen(sz1,"w");
    for(int i=0;i<m;i++)
    {
        for(int j=0;j<m;j++)
        {
#ifdef PRINT_STDOUT
            printf("%d ",Yn[i][j]);
#endif
            fprintf(fp,"%d ",Yn[i][j]);
        }
#ifdef PRINT_STDOUT
            printf("\n");
#endif        
        fprintf(fp,"\n");
    }
    fclose(fp);

    system("pause");
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值