S(R16_105)=9,[1,2,2,2,4,4,8,8,16],N(R16_105)=5,[1,2,4,8,16],R16_105=Z[i]/(4)的8阶理想子环有1个R8_24,R16_105的8阶非理想子环有1个R8_21,R16_105的8阶商环有1个R8_22
R8_24=ZimodnZObj(1+i,4)=[6] => [1 3 6 8 9 11 14 16] 是理想  ,商环: [[1 3 6 8 9 11 14 16] [2 4 5 7 10 12 13 15]]
S(R16_106)=8,[1,2,2,2,4,4,8,16],N(R16_106)=3,[1,4,16],R16_106的8阶理想子环有0个,R16_106的8阶非理想子环有1个R8_21,R16_106的8阶商环有0个
S(R16_105):
[1] => [1] 是理想  ,商环: [[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]]
[R16Add]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
2 3 4 1 6 7 8 5 10 11 12 9 14 15 16 13 
3 4 1 2 7 8 5 6 11 12 9 10 15 16 13 14 
4 1 2 3 8 5 6 7 12 9 10 11 16 13 14 15 
5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 
6 7 8 5 10 11 12 9 14 15 16 13 2 3 4 1 
7 8 5 6 11 12 9 10 15 16 13 14 3 4 1 2 
8 5 6 7 12 9 10 11 16 13 14 15 4 1 2 3 
9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 
10 11 12 9 14 15 16 13 2 3 4 1 6 7 8 5 
11 12 9 10 15 16 13 14 3 4 1 2 7 8 5 6 
12 9 10 11 16 13 14 15 4 1 2 3 8 5 6 7 
13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 
14 15 16 13 2 3 4 1 6 7 8 5 10 11 12 9 
15 16 13 14 3 4 1 2 7 8 5 6 11 12 9 10 
16 13 14 15 4 1 2 3 8 5 6 7 12 9 10 11 
[R16Mul]
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
1 3 1 3 9 11 9 11 1 3 1 3 9 11 9 11 
1 4 3 2 13 16 15 14 9 12 11 10 5 8 7 6 
1 5 9 13 4 8 12 16 3 7 11 15 2 6 10 14 
1 6 11 16 8 9 14 3 11 16 1 6 14 3 8 9 
1 7 9 15 12 14 4 6 3 5 11 13 10 16 2 8 
1 8 11 14 16 3 6 9 11 14 1 8 6 9 16 3 
1 9 1 9 3 11 3 11 1 9 1 9 3 11 3 11 
1 10 3 12 7 16 5 14 9 2 11 4 15 8 13 6 
1 11 1 11 11 1 11 1 1 11 1 11 11 1 11 1 
1 12 3 10 15 6 13 8 9 4 11 2 7 14 5 16 
1 13 9 5 2 14 10 6 3 15 11 7 4 16 12 8 
1 14 11 8 6 3 16 9 11 8 1 14 16 9 6 3 
1 15 9 7 10 8 2 16 3 13 11 5 12 6 4 14 
1 16 11 6 14 9 8 3 11 6 1 16 8 3 14 9 
[2] => [1 2 3 4] 不是理想 
[3] => [1 3] 不是理想 
[5] => [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16] 是理想 ,是中心 ,商环: [[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]]
[R1Add]

[R1Mul]

[6] => [1 3 6 8 9 11 14 16] 是理想  ,商环: [[1 3 6 8 9 11 14 16] [2 4 5 7 10 12 13 15]]
[R2Add]
1 2 
2 1 
[R2Mul]
1 1 
1 2 
8 阶子环:
[R8Add]
1 2 3 4 5 6 7 8 
2 1 4 3 6 5 8 7 
3 4 6 5 7 8 2 1 
4 3 5 6 8 7 1 2 
5 6 7 8 1 2 3 4 
6 5 8 7 2 1 4 3 
7 8 2 1 3 4 6 5 
8 7 1 2 4 3 5 6 
[R8Mul]
1 1 1 1 1 1 1 1 
1 1 6 6 1 1 6 6 
1 6 5 2 6 1 2 5 
1 6 2 5 6 1 5 2 
1 1 6 6 1 1 6 6 
1 1 1 1 1 1 1 1 
1 6 2 5 6 1 5 2 
1 6 5 2 6 1 2 5 
[9] => [1 9] 不是理想 
[10] => [1 2 3 4 9 10 11 12] 不是理想 
8 阶子环:
[R8Add]
1 2 3 4 5 6 7 8 
2 3 4 1 6 7 8 5 
3 4 1 2 7 8 5 6 
4 1 2 3 8 5 6 7 
5 6 7 8 1 2 3 4 
6 7 8 5 2 3 4 1 
7 8 5 6 3 4 1 2 
8 5 6 7 4 1 2 3 
[R8Mul]
1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 
1 3 1 3 1 3 1 3 
1 4 3 2 5 8 7 6 
1 5 1 5 1 5 1 5 
1 6 3 8 5 2 7 4 
1 7 1 7 1 7 1 7 
1 8 3 6 5 4 7 2 
[11] => [1 11] 是理想  ,商环: [[1 11] [2 12] [3 9] [4 10] [5 15] [6 16] [7 13] [8 14]]
[R8Add]
1 2 3 4 5 6 7 8 
2 3 4 1 6 7 8 5 
3 4 1 2 7 8 5 6 
4 1 2 3 8 5 6 7 
5 6 7 8 3 4 1 2 
6 7 8 5 4 1 2 3 
7 8 5 6 1 2 3 4 
8 5 6 7 2 3 4 1 
[R8Mul]
1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 
1 3 1 3 3 1 3 1 
1 4 3 2 7 6 5 8 
1 5 3 7 4 8 2 6 
1 6 1 6 8 3 8 3 
1 7 3 5 2 8 4 6 
1 8 1 8 6 3 6 3 
[3 9] => [1 3 9 11] 是理想  ,商环: [[1 3 9 11] [2 4 10 12] [5 7 13 15] [6 8 14 16]]
[R4Add]
1 2 3 4 
2 1 4 3 
3 4 1 2 
4 3 2 1 
[R4Mul]
1 1 1 1 
1 2 3 4 
1 3 2 4 
1 4 4 1 
time consume: 1.749195622s
S(R16_106):
[1] => [1] 是理想  ,商环: [[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]]
[R16Add]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
2 3 4 1 6 7 8 5 10 11 12 9 14 15 16 13 
3 4 1 2 7 8 5 6 11 12 9 10 15 16 13 14 
4 1 2 3 8 5 6 7 12 9 10 11 16 13 14 15 
5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 
6 7 8 5 10 11 12 9 14 15 16 13 2 3 4 1 
7 8 5 6 11 12 9 10 15 16 13 14 3 4 1 2 
8 5 6 7 12 9 10 11 16 13 14 15 4 1 2 3 
9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 
10 11 12 9 14 15 16 13 2 3 4 1 6 7 8 5 
11 12 9 10 15 16 13 14 3 4 1 2 7 8 5 6 
12 9 10 11 16 13 14 15 4 1 2 3 8 5 6 7 
13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 
14 15 16 13 2 3 4 1 6 7 8 5 10 11 12 9 
15 16 13 14 3 4 1 2 7 8 5 6 11 12 9 10 
16 13 14 15 4 1 2 3 8 5 6 7 12 9 10 11 
[R16Mul]
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
1 3 1 3 9 11 9 11 1 3 1 3 9 11 9 11 
1 4 3 2 13 16 15 14 9 12 11 10 5 8 7 6 
1 5 9 13 16 4 8 12 11 15 3 7 6 10 14 2 
1 6 11 16 4 5 10 15 3 8 9 14 2 7 12 13 
1 7 9 15 8 10 16 2 11 13 3 5 14 4 6 12 
1 8 11 14 12 15 2 5 3 6 9 16 10 13 4 7 
1 9 1 9 11 3 11 3 1 9 1 9 11 3 11 3 
1 10 3 12 15 8 13 6 9 2 11 4 7 16 5 14 
1 11 1 11 3 9 3 9 1 11 1 11 3 9 3 9 
1 12 3 10 7 14 5 16 9 4 11 2 15 6 13 8 
1 13 9 5 6 2 14 10 11 7 3 15 16 12 8 4 
1 14 11 8 10 7 4 13 3 16 9 6 12 5 2 15 
1 15 9 7 14 12 6 4 11 5 3 13 8 2 16 10 
1 16 11 6 2 13 12 7 3 14 9 8 4 15 10 5 
[2] => [1 2 3 4] 不是理想 
[3] => [1 3] 不是理想 
[5] => [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16] 是理想 ,是中心 ,商环: [[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]]
[R1Add]

[R1Mul]

[9] => [1 9] 不是理想 
[10] => [1 2 3 4 9 10 11 12] 不是理想 
8 阶子环:
[R8Add]
1 2 3 4 5 6 7 8 
2 3 4 1 6 7 8 5 
3 4 1 2 7 8 5 6 
4 1 2 3 8 5 6 7 
5 6 7 8 1 2 3 4 
6 7 8 5 2 3 4 1 
7 8 5 6 3 4 1 2 
8 5 6 7 4 1 2 3 
[R8Mul]
1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 
1 3 1 3 1 3 1 3 
1 4 3 2 5 8 7 6 
1 5 1 5 1 5 1 5 
1 6 3 8 5 2 7 4 
1 7 1 7 1 7 1 7 
1 8 3 6 5 4 7 2 
[11] => [1 11] 不是理想 
[3 9] => [1 3 9 11] 是理想  ,商环: [[1 3 9 11] [2 4 10 12] [5 7 13 15] [6 8 14 16]]
[R4Add]
1 2 3 4 
2 1 4 3 
3 4 1 2 
4 3 2 1 
[R4Mul]
1 1 1 1 
1 2 3 4 
1 3 4 2 
1 4 2 3 
time consume: 1.731670727s
S(R16_103)=15,[1,2,2,2,4,4,4,4,4,4,4,8,8,8,16],
N(R16_103)=13,[1,2,2,2,4,4,4,4,4,8,8,8,16],
R16_103的8阶理想子环有3个,R16_103的8阶非理想子环有0个,R16_103的8阶商环有3个
R8_16=[3] => [1 3] 是理想  ,商环: [[1 3] [2 4] [5 7] [6 8] [9 11] [10 12] [13 15] [14 16]]
R8_16=[9] => [1 9] 是理想  ,商环: [[1 9] [2 10] [3 11] [4 12] [5 13] [6 14] [7 15] [8 16]]
R8_19=[11] => [1 11] 是理想  ,商环: [[1 11] [2 12] [3 9] [4 10] [5 15] [6 16] [7 13] [8 14]]
R8_16:[3 6] => [1 3 6 8 9 11 14 16] 是理想  ,商环: [[1 3 6 8 9 11 14 16] [2 4 5 7 10 12 13 15]]
R8_16=[2 9] => [1 2 3 4 9 10 11 12] 是理想  ,商环: [[1 2 3 4 9 10 11 12] [5 6 7 8 13 14 15 16]]
S(R16_104)=12,[1,2,2,2,4,4,4,4,8,8,8,16],N(R16_104)=9,[1,2,2,4,4,4,8,8,16],R16_104的8阶理想子环是R8_13、R8_13,R16_104的8阶非理想子环是R8_21,R16_104的8阶商环是R8_14、R8_14
R8_13=[3] => [1 3 4 6 7 9 13 15] 是理想  ,商环: [[1 3 4 6 7 9 13 15] [2 5 8 10 11 12 14 16]]
[6] => [1 6] 是理想  ,商环: [[1 6] [2 11] [3 7] [4 9] [5 16] [8 12] [10 14] [13 15]]
[9] => [1 9] 是理想  ,商环: [[1 9] [2 16] [3 15] [4 6] [5 11] [7 13] [8 10] [12 14]]
R8_21=[11] => [1 2 4 5 6 9 11 16] 不是理想
R8_13=[13] => [1 6 13 15] 是理想  ,商环: [[1 6 13 15] [2 10 11 14] [3 4 7 9] [5 8 12 16]]
S(R16_102)=15,[1,2,2,2,4,4,4,4,4,4,4,8,8,8,16],N(R16_102)=6,[1,2,4,4,8,16],,R16_102的8阶理想子环是R8_10(根据环不变量N2可以排除掉R8_8),R16_102的8阶非理想子环是R8_15、R8_15,R16_102的8阶商环是R8_15    
[6] => [1 6] 是理想  ,商环: [[1 6] [2 11] [3 7] [4 9] [5 16] [8 12] [10 14] [13 15]]    
[3 4] => [1 3 4 6 7 9 13 15] 是理想  ,商环: [[1 3 4 6 7 9 13 15] [2 5 8 10 11 12 14 16]]
R8_15=[2 6] => [1 2 4 5 6 9 11 16] 不是理想
R8_15=[4 8] => [1 4 6 8 9 10 12 14] 不是理想
S(R16_101)=15,[1,2,2,2,4,4,4,4,4,4,4,8,8,8,16],N(R16_101)=6,[1,2,4,4,8,16],R16_101的8阶理想子环是R8_8、R8_9、R8_10这3个环中的一种,R16_101的8阶非理想子环是R8_20、R8_20,R16_101的8阶商环是R8_20【R8_10、R8_15、R8_20正是20160929问题所要寻找表示的17种8阶环中的3种】
[6] => [1 6] 是理想  ,商环: [[1 6] [2 11] [3 7] [4 9] [5 16] [8 12] [10 14] [13 15]]
[3 4] => [1 3 4 6 7 9 13 15] 是理想  ,商环: [[1 3 4 6 7 9 13 15] [2 5 8 10 11 12 14 16]]
R8_20=[2 6] => [1 2 4 5 6 9 11 16] 不是理想
R8_20=[4 8] => [1 4 6 8 9 10 12 14] 不是理想 
R8_8、R8_10的3个极大理想是R4_1、R4_2、R4_4;R8_9的3个极大理想是R4_5、R4_1、R4_1;
i=8[ 1, 2, 4, 4, 4, 8 ]
i=9[ 1, 2, 4, 4, 4, 8 ]
N(R8_8)=6,[ 1, 2, 4, 4, 4, 8 ]=[[1,1],[2,1],[4,1],[4,2],[4,4],[8,8]]
N(R8_9)=6,[ 1, 2, 4, 4, 4, 8 ]=[[1,1],[2,1],[4,5],[4,1],[4,1],[8,9]]
N(R8_10)=6,[ 1, 2, 4, 4, 4, 8 ]=[[1,1],[2,1],[4,1],[4,2],[4,4],[8,10]]
S(R8_8)=8,[ 1, 2, 2, 2, 4, 4, 4, 8 ]=[[1,1],[2,1],[2,1],[2,1],[4,1],[4,2],[4,4],[8,8]]
S(R8_9)=6,[ 1, 2, 4, 4, 4, 8 ]=[[1,1],[2,1],[4,5],[4,1],[4,1],[8,9]]
S(R8_10)=8,[ 1, 2, 2, 2, 4, 4, 4, 8 ]=[[1,1],[2,1],[2,1],[2,1],[4,1],[4,2],[4,4],[8,10]]
i=8,中心:2
i=9,中心:2
i=10,中心:2
S(R16_300)=28,[1,2,2,2,2,2,2,2,2,2,2,4,4,4,4,4,4,4,4,4,4,4,4,4,8,8,8,16],N(R16_300)=2,[1,16],[2] => [1 2] 不是理想 ,是中心【16阶全矩阵环M_2(F_2)的中心是GF(2)。】
R16_300的3个8阶理想子环都是R8_49:
R8_49=[3 4] => [1 2 3 4 5 10 11 12] 不是理想 
R8_49=[3 6] => [1 2 3 6 7 10 13 14] 不是理想
R8_49=[5 7] => [1 2 5 7 8 11 13 16] 不是理想
S(R16_382)=15,[1,2,2,2,2,4,4,4,4,4,8,8,8,8,16],N(R16_382)=8,[1,2,2,4,4,8,8,16],R16_382的8阶理想子环是R8_46、R8_38,R16_382的8阶非理想子环是R8_46、R8_48,R16_382的8阶商环是R8_48、R8_46
S(R16_385)=12,[1,2,2,2,2,4,4,4,4,8,8,16],N(R16_385)=5,[1,2,4,8,16],R16_385的8阶理想子环是R8_33,R16_385的8阶非理想子环是R8_45,R16_385的8阶商环是R8_46
S(R16_103):
[1] => [1] 是理想  ,商环: [[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]]
[R16Add]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
2 3 4 1 6 7 8 5 10 11 12 9 14 15 16 13 
3 4 1 2 7 8 5 6 11 12 9 10 15 16 13 14 
4 1 2 3 8 5 6 7 12 9 10 11 16 13 14 15 
5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 
6 7 8 5 10 11 12 9 14 15 16 13 2 3 4 1 
7 8 5 6 11 12 9 10 15 16 13 14 3 4 1 2 
8 5 6 7 12 9 10 11 16 13 14 15 4 1 2 3 
9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 
10 11 12 9 14 15 16 13 2 3 4 1 6 7 8 5 
11 12 9 10 15 16 13 14 3 4 1 2 7 8 5 6 
12 9 10 11 16 13 14 15 4 1 2 3 8 5 6 7 
13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 
14 15 16 13 2 3 4 1 6 7 8 5 10 11 12 9 
15 16 13 14 3 4 1 2 7 8 5 6 11 12 9 10 
16 13 14 15 4 1 2 3 8 5 6 7 12 9 10 11 
[R16Mul]
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 
1 1 1 1 9 9 9 9 1 1 1 1 9 9 9 9 
1 3 1 3 9 11 9 11 1 3 1 3 9 11 9 11 
1 1 1 1 9 9 9 9 1 1 1 1 9 9 9 9 
1 3 1 3 9 11 9 11 1 3 1 3 9 11 9 11 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 
1 1 1 1 9 9 9 9 1 1 1 1 9 9 9 9 
1 3 1 3 9 11 9 11 1 3 1 3 9 11 9 11 
1 1 1 1 9 9 9 9 1 1 1 1 9 9 9 9 
1 3 1 3 9 11 9 11 1 3 1 3 9 11 9 11 
[2] => [1 2 3 4] 是理想  ,商环: [[1 2 3 4] [5 6 7 8] [9 10 11 12] [13 14 15 16]]
[R4Add]
1 2 3 4 
2 3 4 1 
3 4 1 2 
4 1 2 3 
[R4Mul]
1 1 1 1 
1 3 1 3 
1 1 1 1 
1 3 1 3 
[3] => [1 3] 是理想  ,商环: [[1 3] [2 4] [5 7] [6 8] [9 11] [10 12] [13 15] [14 16]]
[R8Add]
1 2 3 4 5 6 7 8 
2 1 4 3 6 5 8 7 
3 4 5 6 7 8 1 2 
4 3 6 5 8 7 2 1 
5 6 7 8 1 2 3 4 
6 5 8 7 2 1 4 3 
7 8 1 2 3 4 5 6 
8 7 2 1 4 3 6 5 
[R8Mul]
1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 
1 1 5 5 1 1 5 5 
1 1 5 5 1 1 5 5 
1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 
1 1 5 5 1 1 5 5 
1 1 5 5 1 1 5 5 
[5] => [1 5 9 13] 是理想  ,商环: [[1 5 9 13] [2 6 10 14] [3 7 11 15] [4 8 12 16]]
[R4Add]
1 2 3 4 
2 3 4 1 
3 4 1 2 
4 1 2 3 
[R4Mul]
1 1 1 1 
1 3 1 3 
1 1 1 1 
1 3 1 3 
[6] => [1 6 11 16] 不是理想 
[7] => [1 7 9 15] 是理想  ,商环: [[1 7 9 15] [2 8 10 16] [3 5 11 13] [4 6 12 14]]
[R4Add]
1 2 3 4 
2 3 4 1 
3 4 1 2 
4 1 2 3 
[R4Mul]
1 1 1 1 
1 3 1 3 
1 1 1 1 
1 3 1 3 
[8] => [1 8 11 14] 不是理想 
[9] => [1 9] 是理想  ,商环: [[1 9] [2 10] [3 11] [4 12] [5 13] [6 14] [7 15] [8 16]]
[R8Add]
1 2 3 4 5 6 7 8 
2 3 4 1 6 7 8 5 
3 4 1 2 7 8 5 6 
4 1 2 3 8 5 6 7 
5 6 7 8 1 2 3 4 
6 7 8 5 2 3 4 1 
7 8 5 6 3 4 1 2 
8 5 6 7 4 1 2 3 
[R8Mul]
1 1 1 1 1 1 1 1 
1 3 1 3 1 3 1 3 
1 1 1 1 1 1 1 1 
1 3 1 3 1 3 1 3 
1 1 1 1 1 1 1 1 
1 3 1 3 1 3 1 3 
1 1 1 1 1 1 1 1 
1 3 1 3 1 3 1 3 
[10] => [1 3 10 12] 是理想  ,商环: [[1 3 10 12] [2 4 9 11] [5 7 14 16] [6 8 13 15]]
[R4Add]
1 2 3 4 
2 1 4 3 
3 4 2 1 
4 3 1 2 
[R4Mul]
1 1 1 1 
1 1 1 1 
1 1 2 2 
1 1 2 2 
[11] => [1 11] 是理想  ,商环: [[1 11] [2 12] [3 9] [4 10] [5 15] [6 16] [7 13] [8 14]]
[R8Add]
1 2 3 4 5 6 7 8 
2 3 4 1 6 7 8 5 
3 4 1 2 7 8 5 6 
4 1 2 3 8 5 6 7 
5 6 7 8 3 4 1 2 
6 7 8 5 4 1 2 3 
7 8 5 6 1 2 3 4 
8 5 6 7 2 3 4 1 
[R8Mul]
1 1 1 1 1 1 1 1 
1 3 1 3 1 3 1 3 
1 1 1 1 1 1 1 1 
1 3 1 3 1 3 1 3 
1 1 1 1 3 3 3 3 
1 3 1 3 3 1 3 1 
1 1 1 1 3 3 3 3 
1 3 1 3 3 1 3 1 
[2 5] => [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16] 是理想 ,是中心 ,商环: [[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]]
[R1Add]

[R1Mul]

[3 5] => [1 3 5 7 9 11 13 15] 是理想  ,商环: [[1 3 5 7 9 11 13 15] [2 4 6 8 10 12 14 16]]
[R2Add]
1 2 
2 1 
[R2Mul]
1 1 
1 1 
8 阶子环:
[R8Add]
1 2 3 4 5 6 7 8 
2 1 4 3 6 5 8 7 
3 4 5 6 7 8 1 2 
4 3 6 5 8 7 2 1 
5 6 7 8 1 2 3 4 
6 5 8 7 2 1 4 3 
7 8 1 2 3 4 5 6 
8 7 2 1 4 3 6 5 
[R8Mul]
1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 
1 1 5 5 1 1 5 5 
1 1 5 5 1 1 5 5 
1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 
1 1 5 5 1 1 5 5 
1 1 5 5 1 1 5 5 
[3 6] => [1 3 6 8 9 11 14 16] 是理想  ,商环: [[1 3 6 8 9 11 14 16] [2 4 5 7 10 12 13 15]]
[R2Add]
1 2 
2 1 
[R2Mul]
1 1 
1 1 
8 阶子环:
[R8Add]
1 2 3 4 5 6 7 8 
2 1 4 3 6 5 8 7 
3 4 6 5 7 8 2 1 
4 3 5 6 8 7 1 2 
5 6 7 8 1 2 3 4 
6 5 8 7 2 1 4 3 
7 8 2 1 3 4 6 5 
8 7 1 2 4 3 5 6 
[R8Mul]
1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 
1 1 6 6 1 1 6 6 
1 1 6 6 1 1 6 6 
1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 
1 1 6 6 1 1 6 6 
1 1 6 6 1 1 6 6 
[2 9] => [1 2 3 4 9 10 11 12] 是理想  ,商环: [[1 2 3 4 9 10 11 12] [5 6 7 8 13 14 15 16]]
[R2Add]
1 2 
2 1 
[R2Mul]
1 1 
1 1 
8 阶子环:
[R8Add]
1 2 3 4 5 6 7 8 
2 3 4 1 6 7 8 5 
3 4 1 2 7 8 5 6 
4 1 2 3 8 5 6 7 
5 6 7 8 1 2 3 4 
6 7 8 5 2 3 4 1 
7 8 5 6 3 4 1 2 
8 5 6 7 4 1 2 3 
[R8Mul]
1 1 1 1 1 1 1 1 
1 3 1 3 1 3 1 3 
1 1 1 1 1 1 1 1 
1 3 1 3 1 3 1 3 
1 1 1 1 1 1 1 1 
1 3 1 3 1 3 1 3 
1 1 1 1 1 1 1 1 
1 3 1 3 1 3 1 3 
[3 9] => [1 3 9 11] 是理想  ,商环: [[1 3 9 11] [2 4 10 12] [5 7 13 15] [6 8 14 16]]
[R4Add]
1 2 3 4 
2 1 4 3 
3 4 1 2 
4 3 2 1 
[R4Mul]
1 1 1 1 
1 1 1 1 
1 1 1 1 
1 1 1 1 
time consume: 1.17243325s
S(R16_104):
[1] => [1] 是理想  ,商环: [[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]]
[R16Add]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
2 4 8 5 1 11 12 13 16 7 9 15 14 3 10 6 
3 8 6 13 14 7 1 11 15 5 12 2 9 16 4 10 
4 5 13 1 2 9 15 14 6 12 16 10 3 8 7 11 
5 1 14 2 4 16 10 3 11 15 6 7 8 13 12 9 
6 11 7 9 16 1 3 12 4 14 2 8 15 10 13 5 
7 12 1 15 10 3 6 2 13 16 8 11 4 5 9 14 
8 13 11 14 3 12 2 9 10 1 15 4 16 6 5 7 
9 16 15 6 11 4 13 10 1 8 5 14 7 12 3 2 
10 7 5 12 15 14 16 1 8 9 3 6 2 4 11 13 
11 9 12 16 6 2 8 15 5 3 4 13 10 7 14 1 
12 15 2 10 7 8 11 4 14 6 13 9 5 1 16 3 
13 14 9 3 8 15 4 16 7 2 10 5 6 11 1 12 
14 3 16 8 13 10 5 6 12 4 7 1 11 9 2 15 
15 10 4 7 12 13 9 5 3 11 14 16 1 2 6 8 
16 6 10 11 9 5 14 7 2 13 1 3 12 15 8 4 
[R16Mul]
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
1 3 13 6 7 6 15 9 1 9 7 4 15 4 13 3 
1 4 6 1 4 1 6 9 1 9 4 9 6 9 6 4 
1 5 7 4 2 6 3 10 9 8 16 14 15 12 13 11 
1 6 6 1 6 1 6 1 1 1 6 1 6 1 6 6 
1 7 15 6 3 6 13 9 1 9 3 4 13 4 15 7 
1 8 9 9 10 1 9 10 9 8 8 10 1 8 1 10 
1 9 1 1 9 1 1 9 1 9 9 9 1 9 1 9 
1 10 9 9 8 1 9 8 9 10 10 8 1 10 1 8 
1 11 7 4 16 6 3 8 9 10 2 12 15 14 13 5 
1 12 4 9 14 1 4 10 9 8 12 10 6 8 6 14 
1 13 15 6 15 6 13 1 1 1 15 6 13 6 15 13 
1 14 4 9 12 1 4 8 9 10 14 8 6 10 6 12 
1 15 13 6 13 6 15 1 1 1 13 6 15 6 13 15 
1 16 3 4 11 6 7 10 9 8 5 14 13 12 15 2 
[2] => [1 2 4 5] 不是理想 
[3] => [1 3 4 6 7 9 13 15] 是理想  ,商环: [[1 3 4 6 7 9 13 15] [2 5 8 10 11 12 14 16]]
[R2Add]
1 2 
2 1 
[R2Mul]
1 1 
1 2 
8 阶子环:
[R8Add]
1 2 3 4 5 6 7 8 
2 4 7 5 1 8 6 3 
3 7 1 6 8 4 2 5 
4 5 6 1 2 3 8 7 
5 1 8 2 4 7 3 6 
6 8 4 3 7 1 5 2 
7 6 2 8 3 5 4 1 
8 3 5 7 6 2 1 4 
[R8Mul]
1 1 1 1 1 1 1 1 
1 7 4 4 8 1 8 7 
1 4 1 1 4 1 4 4 
1 4 1 1 4 1 4 4 
1 8 4 4 7 1 7 8 
1 1 1 1 1 1 1 1 
1 8 4 4 7 1 7 8 
1 7 4 4 8 1 8 7 
[4] => [1 4] 不是理想 
[6] => [1 6] 是理想  ,商环: [[1 6] [2 11] [3 7] [4 9] [5 16] [8 12] [10 14] [13 15]]
[R8Add]
1 2 3 4 5 6 7 8 
2 4 6 5 1 8 3 7 
3 6 1 8 7 2 5 4 
4 5 8 1 2 7 6 3 
5 1 7 2 4 3 8 6 
6 8 2 7 3 4 1 5 
7 3 5 6 8 1 4 2 
8 7 4 3 6 5 2 1 
[R8Mul]
1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 
1 3 8 1 3 4 4 8 
1 4 1 1 4 4 4 1 
1 5 3 4 2 7 6 8 
1 6 4 4 7 7 6 1 
1 7 4 4 6 6 7 1 
1 8 8 1 8 1 1 8 
[8] => [1 8 9 10] 是理想  ,商环: [[1 8 9 10] [2 7 13 16] [3 5 11 15] [4 6 12 14]]
[R4Add]
1 2 3 4 
2 4 1 3 
3 1 4 2 
4 3 2 1 
[R4Mul]
1 1 1 1 
1 2 3 4 
1 3 2 4 
1 4 4 1 
[9] => [1 9] 是理想  ,商环: [[1 9] [2 16] [3 15] [4 6] [5 11] [7 13] [8 10] [12 14]]
[R8Add]
1 2 3 4 5 6 7 8 
2 4 7 5 1 8 6 3 
3 7 4 6 8 1 5 2 
4 5 6 1 2 3 8 7 
5 1 8 2 4 7 3 6 
6 8 1 3 7 4 2 5 
7 6 5 8 3 2 1 4 
8 3 2 7 6 5 4 1 
[R8Mul]
1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 
1 3 6 4 6 3 1 4 
1 4 4 1 4 4 1 1 
1 5 6 4 2 3 7 8 
1 6 3 4 3 6 1 4 
1 7 1 1 7 1 7 7 
1 8 4 1 8 4 7 7 
[11] => [1 2 4 5 6 9 11 16] 不是理想 
8 阶子环:
[R8Add]
1 2 3 4 5 6 7 8 
2 3 4 1 7 8 6 5 
3 4 1 2 6 5 8 7 
4 1 2 3 8 7 5 6 
5 7 6 8 1 3 2 4 
6 8 5 7 3 1 4 2 
7 6 8 5 2 4 3 1 
8 5 7 6 4 2 1 3 
[R8Mul]
1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 
1 3 1 3 1 1 3 3 
1 4 3 2 5 6 8 7 
1 5 1 5 1 1 5 5 
1 6 1 6 1 1 6 6 
1 7 3 8 5 6 2 4 
1 8 3 7 5 6 4 2 
[12] => [1 4 6 8 9 10 12 14] 是理想  ,商环: [[1 4 6 8 9 10 12 14] [2 3 5 7 11 13 15 16]]
[R2Add]
1 2 
2 1 
[R2Mul]
1 1 
1 2 
8 阶子环:
[R8Add]
1 2 3 4 5 6 7 8 
2 1 5 8 3 7 6 4 
3 5 1 7 2 8 4 6 
4 8 7 5 6 1 2 3 
5 3 2 6 1 4 8 7 
6 7 8 1 4 5 3 2 
7 6 4 2 8 3 5 1 
8 4 6 3 7 2 1 5 
[R8Mul]
1 1 1 1 1 1 1 1 
1 1 1 5 1 5 5 5 
1 1 1 1 1 1 1 1 
1 5 1 6 5 4 6 4 
1 1 1 5 1 5 5 5 
1 5 1 4 5 6 4 6 
1 5 1 6 5 4 6 4 
1 5 1 4 5 6 4 6 
[13] => [1 6 13 15] 是理想  ,商环: [[1 6 13 15] [2 10 11 14] [3 4 7 9] [5 8 12 16]]
[R4Add]
1 2 3 4 
2 3 4 1 
3 4 1 2 
4 1 2 3 
[R4Mul]
1 1 1 1 
1 2 3 4 
1 3 1 3 
1 4 3 2 
[2 3] => [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16] 是理想 ,是中心 ,商环: [[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]]
[R1Add]

[R1Mul]

[4 6] => [1 4 6 9] 是理想  ,商环: [[1 4 6 9] [2 5 11 16] [3 7 13 15] [8 10 12 14]]
[R4Add]
1 2 3 4 
2 1 4 3 
3 4 1 2 
4 3 2 1 
[R4Mul]
1 1 1 1 
1 2 3 4 
1 3 3 1 
1 4 1 4 
time consume: 1.41418308s
S(R16_102):
[1] => [1] 是理想 ,是中心 ,商环: [[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]]
[R16Add]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
2 4 8 5 1 11 12 13 16 7 9 15 14 3 10 6 
3 8 6 13 14 7 1 11 15 5 12 2 9 16 4 10 
4 5 13 1 2 9 15 14 6 12 16 10 3 8 7 11 
5 1 14 2 4 16 10 3 11 15 6 7 8 13 12 9 
6 11 7 9 16 1 3 12 4 14 2 8 15 10 13 5 
7 12 1 15 10 3 6 2 13 16 8 11 4 5 9 14 
8 13 11 14 3 12 2 9 10 1 15 4 16 6 5 7 
9 16 15 6 11 4 13 10 1 8 5 14 7 12 3 2 
10 7 5 12 15 14 16 1 8 9 3 6 2 4 11 13 
11 9 12 16 6 2 8 15 5 3 4 13 10 7 14 1 
12 15 2 10 7 8 11 4 14 6 13 9 5 1 16 3 
13 14 9 3 8 15 4 16 7 2 10 5 6 11 1 12 
14 3 16 8 13 10 5 6 12 4 7 1 11 9 2 15 
15 10 4 7 12 13 9 5 3 11 14 16 1 2 6 8 
16 6 10 11 9 5 14 7 2 13 1 3 12 15 8 4 
[R16Mul]
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 2 4 4 5 1 4 5 4 2 2 5 1 2 1 5 
1 3 6 6 7 1 6 7 6 3 3 7 1 3 1 7 
1 4 1 1 4 1 1 4 1 4 4 4 1 4 1 4 
1 5 4 4 2 1 4 2 4 5 5 2 1 5 1 2 
1 6 1 1 6 1 1 6 1 6 6 6 1 6 1 6 
1 7 6 6 3 1 6 3 6 7 7 3 1 7 1 3 
1 8 9 9 10 1 9 10 9 8 8 10 1 8 1 10 
1 9 1 1 9 1 1 9 1 9 9 9 1 9 1 9 
1 10 9 9 8 1 9 8 9 10 10 8 1 10 1 8 
1 11 4 4 16 1 4 16 4 11 11 16 1 11 1 16 
1 12 9 9 14 1 9 14 9 12 12 14 1 12 1 14 
1 13 6 6 15 1 6 15 6 13 13 15 1 13 1 15 
1 14 9 9 12 1 9 12 9 14 14 12 1 14 1 12 
1 15 6 6 13 1 6 13 6 15 15 13 1 15 1 13 
1 16 4 4 11 1 4 11 4 16 16 11 1 16 1 11 
[2] => [1 2 4 5] 不是理想 
[3] => [1 3 6 7] 不是理想 
[4] => [1 4] 不是理想 
[6] => [1 6] 是理想  ,商环: [[1 6] [2 11] [3 7] [4 9] [5 16] [8 12] [10 14] [13 15]]
[R8Add]
1 2 3 4 5 6 7 8 
2 4 6 5 1 8 3 7 
3 6 1 8 7 2 5 4 
4 5 8 1 2 7 6 3 
5 1 7 2 4 3 8 6 
6 8 2 7 3 4 1 5 
7 3 5 6 8 1 4 2 
8 7 4 3 6 5 2 1 
[R8Mul]
1 1 1 1 1 1 1 1 
1 2 4 4 5 5 2 1 
1 3 1 1 3 3 3 1 
1 4 1 1 4 4 4 1 
1 5 4 4 2 2 5 1 
1 6 4 4 7 7 6 1 
1 7 4 4 6 6 7 1 
1 8 1 1 8 8 8 1 
[8] => [1 8 9 10] 不是理想 
[9] => [1 9] 不是理想 
[11] => [1 4 11 16] 不是理想 
[12] => [1 9 12 14] 不是理想 
[13] => [1 6 13 15] 是理想  ,商环: [[1 6 13 15] [2 10 11 14] [3 4 7 9] [5 8 12 16]]
[R4Add]
1 2 3 4 
2 3 4 1 
3 4 1 2 
4 1 2 3 
[R4Mul]
1 1 1 1 
1 2 3 4 
1 3 1 3 
1 4 3 2 
[2 3] => [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16] 是理想  ,商环: [[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]]
[R1Add]

[R1Mul]

[3 4] => [1 3 4 6 7 9 13 15] 是理想  ,商环: [[1 3 4 6 7 9 13 15] [2 5 8 10 11 12 14 16]]
[R2Add]
1 2 
2 1 
[R2Mul]
1 1 
1 2 
8 阶子环:
[R8Add]
1 2 3 4 5 6 7 8 
2 4 7 5 1 8 6 3 
3 7 1 6 8 4 2 5 
4 5 6 1 2 3 8 7 
5 1 8 2 4 7 3 6 
6 8 4 3 7 1 5 2 
7 6 2 8 3 5 4 1 
8 3 5 7 6 2 1 4 
[R8Mul]
1 1 1 1 1 1 1 1 
1 4 4 1 4 4 1 1 
1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 
1 4 4 1 4 4 1 1 
1 1 1 1 1 1 1 1 
1 4 4 1 4 4 1 1 
1 4 4 1 4 4 1 1 
[2 6] => [1 2 4 5 6 9 11 16] 不是理想 
8 阶子环:
[R8Add]
1 2 3 4 5 6 7 8 
2 3 4 1 7 8 6 5 
3 4 1 2 6 5 8 7 
4 1 2 3 8 7 5 6 
5 7 6 8 1 3 2 4 
6 8 5 7 3 1 4 2 
7 6 8 5 2 4 3 1 
8 5 7 6 4 2 1 3 
[R8Mul]
1 1 1 1 1 1 1 1 
1 2 3 4 1 3 2 4 
1 3 1 3 1 1 3 3 
1 4 3 2 1 3 4 2 
1 5 1 5 1 1 5 5 
1 6 1 6 1 1 6 6 
1 7 3 8 1 3 7 8 
1 8 3 7 1 3 8 7 
[4 6] => [1 4 6 9] 是理想  ,商环: [[1 4 6 9] [2 5 11 16] [3 7 13 15] [8 10 12 14]]
[R4Add]
1 2 3 4 
2 1 4 3 
3 4 1 2 
4 3 2 1 
[R4Mul]
1 1 1 1 
1 2 1 2 
1 3 1 3 
1 4 1 4 
[4 8] => [1 4 6 8 9 10 12 14] 不是理想 
8 阶子环:
[R8Add]
1 2 3 4 5 6 7 8 
2 1 5 8 3 7 6 4 
3 5 1 7 2 8 4 6 
4 8 7 5 6 1 2 3 
5 3 2 6 1 4 8 7 
6 7 8 1 4 5 3 2 
7 6 4 2 8 3 5 1 
8 4 6 3 7 2 1 5 
[R8Mul]
1 1 1 1 1 1 1 1 
1 1 1 2 1 2 2 2 
1 1 1 3 1 3 3 3 
1 5 1 6 5 4 6 4 
1 1 1 5 1 5 5 5 
1 5 1 4 5 6 4 6 
1 5 1 8 5 7 8 7 
1 5 1 7 5 8 7 8 
time consume: 1.415356562s
S(R16_101):
[1] => [1] 是理想 ,是中心 ,商环: [[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]]
[R16Add]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
2 4 8 5 1 11 12 13 16 7 9 15 14 3 10 6 
3 8 6 13 14 7 1 11 15 5 12 2 9 16 4 10 
4 5 13 1 2 9 15 14 6 12 16 10 3 8 7 11 
5 1 14 2 4 16 10 3 11 15 6 7 8 13 12 9 
6 11 7 9 16 1 3 12 4 14 2 8 15 10 13 5 
7 12 1 15 10 3 6 2 13 16 8 11 4 5 9 14 
8 13 11 14 3 12 2 9 10 1 15 4 16 6 5 7 
9 16 15 6 11 4 13 10 1 8 5 14 7 12 3 2 
10 7 5 12 15 14 16 1 8 9 3 6 2 4 11 13 
11 9 12 16 6 2 8 15 5 3 4 13 10 7 14 1 
12 15 2 10 7 8 11 4 14 6 13 9 5 1 16 3 
13 14 9 3 8 15 4 16 7 2 10 5 6 11 1 12 
14 3 16 8 13 10 5 6 12 4 7 1 11 9 2 15 
15 10 4 7 12 13 9 5 3 11 14 16 1 2 6 8 
16 6 10 11 9 5 14 7 2 13 1 3 12 15 8 4 
[R16Mul]
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
1 4 6 1 4 1 6 9 1 9 4 9 6 9 6 4 
1 4 6 1 4 1 6 9 1 9 4 9 6 9 6 4 
1 5 7 4 2 6 3 10 9 8 16 14 15 12 13 11 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 4 6 1 4 1 6 9 1 9 4 9 6 9 6 4 
1 5 7 4 2 6 3 10 9 8 16 14 15 12 13 11 
1 4 6 1 4 1 6 9 1 9 4 9 6 9 6 4 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
1 5 7 4 2 6 3 10 9 8 16 14 15 12 13 11 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 5 7 4 2 6 3 10 9 8 16 14 15 12 13 11 
[2] => [1 2 4 5] 不是理想 
[3] => [1 3 6 7] 不是理想 
[4] => [1 4] 不是理想 
[6] => [1 6] 是理想  ,商环: [[1 6] [2 11] [3 7] [4 9] [5 16] [8 12] [10 14] [13 15]]
[R8Add]
1 2 3 4 5 6 7 8 
2 4 6 5 1 8 3 7 
3 6 1 8 7 2 5 4 
4 5 8 1 2 7 6 3 
5 1 7 2 4 3 8 6 
6 8 2 7 3 4 1 5 
7 3 5 6 8 1 4 2 
8 7 4 3 6 5 2 1 
[R8Mul]
1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 
1 4 1 1 4 4 4 1 
1 4 1 1 4 4 4 1 
1 5 3 4 2 7 6 8 
1 5 3 4 2 7 6 8 
1 2 3 4 5 6 7 8 
1 1 1 1 1 1 1 1 
[8] => [1 8 9 10] 不是理想 
[9] => [1 9] 不是理想 
[11] => [1 4 11 16] 不是理想 
[12] => [1 9 12 14] 不是理想 
[13] => [1 6 13 15] 是理想  ,商环: [[1 6 13 15] [2 10 11 14] [3 4 7 9] [5 8 12 16]]
[R4Add]
1 2 3 4 
2 3 4 1 
3 4 1 2 
4 1 2 3 
[R4Mul]
1 1 1 1 
1 2 3 4 
1 3 1 3 
1 4 3 2 
[2 3] => [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16] 是理想  ,商环: [[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]]
[R1Add]

[R1Mul]

[3 4] => [1 3 4 6 7 9 13 15] 是理想  ,商环: [[1 3 4 6 7 9 13 15] [2 5 8 10 11 12 14 16]]
[R2Add]
1 2 
2 1 
[R2Mul]
1 1 
1 2 
8 阶子环:
[R8Add]
1 2 3 4 5 6 7 8 
2 4 7 5 1 8 6 3 
3 7 1 6 8 4 2 5 
4 5 6 1 2 3 8 7 
5 1 8 2 4 7 3 6 
6 8 4 3 7 1 5 2 
7 6 2 8 3 5 4 1 
8 3 5 7 6 2 1 4 
[R8Mul]
1 1 1 1 1 1 1 1 
1 4 1 1 4 1 4 4 
1 4 1 1 4 1 4 4 
1 1 1 1 1 1 1 1 
1 4 1 1 4 1 4 4 
1 4 1 1 4 1 4 4 
1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1 
[2 6] => [1 2 4 5 6 9 11 16] 不是理想 
8 阶子环:
[R8Add]
1 2 3 4 5 6 7 8 
2 3 4 1 7 8 6 5 
3 4 1 2 6 5 8 7 
4 1 2 3 8 7 5 6 
5 7 6 8 1 3 2 4 
6 8 5 7 3 1 4 2 
7 6 8 5 2 4 3 1 
8 5 7 6 4 2 1 3 
[R8Mul]
1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 
1 3 1 3 1 1 3 3 
1 4 3 2 5 6 8 7 
1 1 1 1 1 1 1 1 
1 3 1 3 1 1 3 3 
1 2 3 4 5 6 7 8 
1 4 3 2 5 6 8 7 
[4 6] => [1 4 6 9] 是理想  ,商环: [[1 4 6 9] [2 5 11 16] [3 7 13 15] [8 10 12 14]]
[R4Add]
1 2 3 4 
2 1 4 3 
3 4 1 2 
4 3 2 1 
[R4Mul]
1 1 1 1 
1 2 3 4 
1 1 1 1 
1 2 3 4 
[4 8] => [1 4 6 8 9 10 12 14] 不是理想 
8 阶子环:
[R8Add]
1 2 3 4 5 6 7 8 
2 1 5 8 3 7 6 4 
3 5 1 7 2 8 4 6 
4 8 7 5 6 1 2 3 
5 3 2 6 1 4 8 7 
6 7 8 1 4 5 3 2 
7 6 4 2 8 3 5 1 
8 4 6 3 7 2 1 5 
[R8Mul]
1 1 1 1 1 1 1 1 
1 1 1 5 1 5 5 5 
1 1 1 1 1 1 1 1 
1 2 3 6 5 4 8 7 
1 1 1 5 1 5 5 5 
1 2 3 4 5 6 7 8 
1 2 3 6 5 4 8 7 
1 2 3 4 5 6 7 8 
time consume: 1.228828094s
S(R16_300):
[1] => [1] 是理想  ,商环: [[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]]
[R16Add]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
2 1 10 12 11 14 13 16 15 3 5 4 7 6 9 8 
3 10 1 11 12 13 14 15 16 2 4 5 6 7 8 9 
4 12 11 1 10 16 15 14 13 5 3 2 9 8 7 6 
5 11 12 10 1 15 16 13 14 4 2 3 8 9 6 7 
6 14 13 16 15 1 10 12 11 7 9 8 3 2 5 4 
7 13 14 15 16 10 1 11 12 6 8 9 2 3 4 5 
8 16 15 14 13 12 11 1 10 9 7 6 5 4 3 2 
9 15 16 13 14 11 12 10 1 8 6 7 4 5 2 3 
10 3 2 5 4 7 6 9 8 1 12 11 14 13 16 15 
11 5 4 3 2 9 8 7 6 12 1 10 16 15 14 13 
12 4 5 2 3 8 9 6 7 11 10 1 15 16 13 14 
13 7 6 9 8 3 2 5 4 14 16 15 1 10 12 11 
14 6 7 8 9 2 3 4 5 13 15 16 10 1 11 12 
15 9 8 7 6 5 4 3 2 16 14 13 12 11 1 10 
16 8 9 6 7 4 5 2 3 15 13 14 11 12 10 1 
[R16Mul]
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
1 3 3 3 3 7 7 7 7 1 1 1 14 14 14 14 
1 4 5 2 3 9 8 7 6 10 11 12 14 13 16 15 
1 5 5 5 5 8 8 8 8 1 1 1 13 13 13 13 
1 6 3 15 12 2 7 11 16 13 8 5 10 14 4 9 
1 7 3 14 1 3 7 1 14 14 7 3 1 14 3 7 
1 8 5 13 1 5 8 1 13 13 8 5 1 13 5 8 
1 9 5 16 12 4 8 11 15 14 7 3 10 13 2 6 
1 10 1 11 12 10 1 11 12 10 11 12 10 1 11 12 
1 11 12 10 1 12 11 1 10 10 11 12 1 10 12 11 
1 12 12 12 12 11 11 11 11 1 1 1 10 10 10 10 
1 13 1 8 5 13 1 8 5 13 8 5 13 1 8 5 
1 14 1 7 3 14 1 7 3 14 7 3 14 1 7 3 
1 15 12 6 3 16 11 7 2 13 8 5 14 10 9 4 
1 16 12 9 5 15 11 8 4 14 7 3 13 10 6 2 
[2] => [1 2] 不是理想 ,是中心
[3] => [1 3] 不是理想 
[4] => [1 2 4 12] 不是理想 
[5] => [1 5] 不是理想 
[6] => [1 2 6 14] 不是理想 
[7] => [1 7] 不是理想 
[8] => [1 8] 不是理想 
[9] => [1 2 9 15] 不是理想 
[10] => [1 10] 不是理想 
[11] => [1 11] 不是理想 
[12] => [1 12] 不是理想 
[13] => [1 13] 不是理想 
[14] => [1 14] 不是理想 
[16] => [1 2 8 16] 不是理想 
[2 3] => [1 2 3 10] 不是理想 
[3 4] => [1 2 3 4 5 10 11 12] 不是理想 
8 阶子环:
[R8Add]
1 2 3 4 5 6 7 8 
2 1 6 8 7 3 5 4 
3 6 1 7 8 2 4 5 
4 8 7 1 6 5 3 2 
5 7 8 6 1 4 2 3 
6 3 2 5 4 1 8 7 
7 5 4 3 2 8 1 6 
8 4 5 2 3 7 6 1 
[R8Mul]
1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 
1 3 3 3 3 1 1 1 
1 4 5 2 3 6 7 8 
1 5 5 5 5 1 1 1 
1 6 1 7 8 6 7 8 
1 7 8 6 1 6 7 8 
1 8 8 8 8 1 1 1 
[2 5] => [1 2 5 11] 不是理想 
[3 5] => [1 3 5 12] 不是理想 
[3 6] => [1 2 3 6 7 10 13 14] 不是理想 
8 阶子环:
[R8Add]
1 2 3 4 5 6 7 8 
2 1 6 8 7 3 5 4 
3 6 1 7 8 2 4 5 
4 8 7 1 6 5 3 2 
5 7 8 6 1 4 2 3 
6 3 2 5 4 1 8 7 
7 5 4 3 2 8 1 6 
8 4 5 2 3 7 6 1 
[R8Mul]
1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 
1 3 3 5 5 1 8 8 
1 4 3 2 5 7 6 8 
1 5 3 3 5 8 1 8 
1 6 1 6 1 6 6 1 
1 7 1 7 1 7 7 1 
1 8 1 8 1 8 8 1 
[4 6] => [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16] 是理想  ,商环: [[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]]
[R1Add]

[R1Mul]

[2 7] => [1 2 7 13] 不是理想 
[3 7] => [1 3 7 14] 不是理想 
[5 7] => [1 2 5 7 8 11 13 16] 不是理想 
8 阶子环:
[R8Add]
1 2 3 4 5 6 7 8 
2 1 6 7 8 3 4 5 
3 6 1 8 7 2 5 4 
4 7 8 1 6 5 2 3 
5 8 7 6 1 4 3 2 
6 3 2 5 4 1 8 7 
7 4 5 2 3 8 1 6 
8 5 4 3 2 7 6 1 
[R8Mul]
1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 
1 3 3 5 5 1 7 7 
1 4 1 4 1 4 1 4 
1 5 1 5 1 5 1 5 
1 6 1 6 1 6 1 6 
1 7 3 1 5 5 7 3 
1 8 3 6 5 4 7 2 
[5 8] => [1 5 8 13] 不是理想 
[7 8] => [1 7 8 11] 不是理想 
[10 11] => [1 10 11 12] 不是理想 
[10 13] => [1 10 13 14] 不是理想 
time consume: 1.218831866s
S(R16_382):
[1] => [1] 是理想  ,商环: [[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]]
[R16Add]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
2 1 4 3 6 5 8 7 10 9 12 11 14 13 16 15 
3 4 1 2 7 8 5 6 11 12 9 10 15 16 13 14 
4 3 2 1 8 7 6 5 12 11 10 9 16 15 14 13 
5 6 7 8 1 2 3 4 13 14 15 16 9 10 11 12 
6 5 8 7 2 1 4 3 14 13 16 15 10 9 12 11 
7 8 5 6 3 4 1 2 15 16 13 14 11 12 9 10 
8 7 6 5 4 3 2 1 16 15 14 13 12 11 10 9 
9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 
10 9 12 11 14 13 16 15 2 1 4 3 6 5 8 7 
11 12 9 10 15 16 13 14 3 4 1 2 7 8 5 6 
12 11 10 9 16 15 14 13 4 3 2 1 8 7 6 5 
13 14 15 16 9 10 11 12 5 6 7 8 1 2 3 4 
14 13 16 15 10 9 12 11 6 5 8 7 2 1 4 3 
15 16 13 14 11 12 9 10 7 8 5 6 3 4 1 2 
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 
[R16Mul]
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
1 3 5 7 9 11 13 15 15 13 11 9 7 5 3 1 
1 4 7 6 13 16 11 10 7 6 1 4 11 10 13 16 
1 5 9 13 15 11 7 3 3 7 11 15 13 9 5 1 
1 6 11 16 11 16 1 6 11 16 1 6 1 6 11 16 
1 7 13 11 7 1 11 13 13 11 1 7 11 13 7 1 
1 8 15 10 3 6 13 12 5 4 11 14 7 2 9 16 
1 9 15 7 3 11 13 5 5 13 11 3 7 15 9 1 
1 10 13 6 7 16 11 4 13 6 1 10 11 4 7 16 
1 11 11 1 11 1 1 11 11 1 1 11 1 11 11 1 
1 12 9 4 15 6 7 14 3 10 11 2 13 8 5 16 
1 13 7 11 13 1 11 7 7 11 1 13 11 7 13 1 
1 14 5 10 9 6 13 2 15 4 11 8 7 12 3 16 
1 15 3 13 5 11 7 9 9 7 11 5 13 3 15 1 
1 16 1 16 1 16 1 16 1 16 1 16 1 16 1 16 
[2] => [1 2] 不是理想 
[3] => [1 3 5 7 9 11 13 15] 是理想  ,商环: [[1 3 5 7 9 11 13 15] [2 4 6 8 10 12 14 16]]
[R2Add]
1 2 
2 1 
[R2Mul]
1 1 
1 2 
8 阶子环:
[R8Add]
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 
[R8Mul]
1 1 1 1 1 1 1 1 
1 3 5 7 8 6 4 2 
1 5 8 4 2 6 7 3 
1 7 4 6 7 1 6 4 
1 8 2 7 3 6 4 5 
1 6 6 1 6 1 1 6 
1 4 7 6 4 1 6 7 
1 2 3 4 5 6 7 8 
[4] => [1 4 6 7 10 11 13 16] 是理想  ,商环: [[1 4 6 7 10 11 13 16] [2 3 5 8 9 12 14 15]]
[R2Add]
1 2 
2 1 
[R2Mul]
1 1 
1 2 
8 阶子环:
[R8Add]
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 
[R8Mul]
1 1 1 1 1 1 1 1 
1 3 8 6 3 1 6 8 
1 8 8 1 8 1 1 8 
1 6 1 6 6 1 6 1 
1 3 8 6 3 1 6 8 
1 1 1 1 1 1 1 1 
1 6 1 6 6 1 6 1 
1 8 8 1 8 1 1 8 
[5] => [1 5 11 15] 不是理想 
[6] => [1 6 11 16] 是理想  ,商环: [[1 6 11 16] [2 5 12 15] [3 8 9 14] [4 7 10 13]]
[R4Add]
1 2 3 4 
2 1 4 3 
3 4 1 2 
4 3 2 1 
[R4Mul]
1 1 1 1 
1 2 3 4 
1 3 2 4 
1 4 4 1 
[7] => [1 7 11 13] 是理想  ,商环: [[1 7 11 13] [2 8 12 14] [3 5 9 15] [4 6 10 16]]
[R4Add]
1 2 3 4 
2 1 4 3 
3 4 1 2 
4 3 2 1 
[R4Mul]
1 1 1 1 
1 2 3 4 
1 3 3 1 
1 4 1 4 
[8] => [1 2 7 8 11 12 13 14] 不是理想 
8 阶子环:
[R8Add]
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 
[R8Mul]
1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 
1 3 5 7 1 3 5 7 
1 4 7 6 5 8 3 2 
1 5 1 5 1 5 1 5 
1 6 3 8 5 2 7 4 
1 7 5 3 1 7 5 3 
1 8 7 2 5 4 3 6 
[11] => [1 11] 是理想  ,商环: [[1 11] [2 12] [3 9] [4 10] [5 15] [6 16] [7 13] [8 14]]
[R8Add]
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 
[R8Mul]
1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 
1 3 5 7 3 1 7 5 
1 4 7 6 7 6 1 4 
1 5 3 7 5 1 7 3 
1 6 1 6 1 6 1 6 
1 7 7 1 7 1 1 7 
1 8 5 4 3 6 7 2 
[12] => [1 2 11 12] 不是理想 
[15] => [1 15] 不是理想 
[16] => [1 16] 是理想  ,商环: [[1 16] [2 15] [3 14] [4 13] [5 12] [6 11] [7 10] [8 9]]
[R8Add]
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 
[R8Mul]
1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 
1 3 5 7 8 6 4 2 
1 4 7 6 4 1 6 7 
1 5 8 4 2 6 7 3 
1 6 6 1 6 1 1 6 
1 7 4 6 7 1 6 4 
1 8 2 7 3 6 4 5 
[2 3] => [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16] 是理想 ,是中心 ,商环: [[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]]
[R1Add]

[R1Mul]

[2 5] => [1 2 5 6 11 12 15 16] 不是理想 
8 阶子环:
[R8Add]
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 
[R8Mul]
1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 
1 3 7 5 5 7 3 1 
1 4 5 8 1 4 5 8 
1 5 5 1 1 5 5 1 
1 6 7 4 5 2 3 8 
1 7 3 5 5 3 7 1 
1 8 1 8 1 8 1 8 
[2 15] => [1 2 15 16] 不是理想 
time consume: 1.238835272s
S(R16_385):
[1] => [1] 是理想  ,商环: [[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]]
[R16Add]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
2 1 4 3 6 5 8 7 10 9 12 11 14 13 16 15 
3 4 1 2 7 8 5 6 11 12 9 10 15 16 13 14 
4 3 2 1 8 7 6 5 12 11 10 9 16 15 14 13 
5 6 7 8 1 2 3 4 13 14 15 16 9 10 11 12 
6 5 8 7 2 1 4 3 14 13 16 15 10 9 12 11 
7 8 5 6 3 4 1 2 15 16 13 14 11 12 9 10 
8 7 6 5 4 3 2 1 16 15 14 13 12 11 10 9 
9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 
10 9 12 11 14 13 16 15 2 1 4 3 6 5 8 7 
11 12 9 10 15 16 13 14 3 4 1 2 7 8 5 6 
12 11 10 9 16 15 14 13 4 3 2 1 8 7 6 5 
13 14 15 16 9 10 11 12 5 6 7 8 1 2 3 4 
14 13 16 15 10 9 12 11 6 5 8 7 2 1 4 3 
15 16 13 14 11 12 9 10 7 8 5 6 3 4 1 2 
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 
[R16Mul]
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
1 3 5 7 9 11 13 15 1 3 5 7 9 11 13 15 
1 4 7 6 13 16 11 10 9 12 15 14 5 8 3 2 
1 5 9 13 1 5 9 13 1 5 9 13 1 5 9 13 
1 6 11 16 5 2 15 12 9 14 3 8 13 10 7 4 
1 7 13 11 9 15 5 3 1 7 13 11 9 15 5 3 
1 8 15 10 13 12 3 6 9 16 7 2 5 4 11 14 
1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 
1 10 3 12 5 14 7 16 9 2 11 4 13 6 15 8 
1 11 5 15 9 3 13 7 1 11 5 15 9 3 13 7 
1 12 7 14 13 8 11 2 9 4 15 6 5 16 3 10 
1 13 9 5 1 13 9 5 1 13 9 5 1 13 9 5 
1 14 11 8 5 10 15 4 9 6 3 16 13 2 7 12 
1 15 13 3 9 7 5 11 1 15 13 3 9 7 5 11 
1 16 15 2 13 4 3 14 9 8 7 10 5 12 11 6 
[2] => [1 2] 不是理想 
[3] => [1 3 5 7 9 11 13 15] 是理想  ,商环: [[1 3 5 7 9 11 13 15] [2 4 6 8 10 12 14 16]]
[R2Add]
1 2 
2 1 
[R2Mul]
1 1 
1 2 
8 阶子环:
[R8Add]
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 
[R8Mul]
1 1 1 1 1 1 1 1 
1 3 5 7 1 3 5 7 
1 5 1 5 1 5 1 5 
1 7 5 3 1 7 5 3 
1 1 1 1 1 1 1 1 
1 3 5 7 1 3 5 7 
1 5 1 5 1 5 1 5 
1 7 5 3 1 7 5 3 
[4] => [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16] 是理想 ,是中心 ,商环: [[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]]
[R1Add]

[R1Mul]

[5] => [1 5] 不是理想 
[6] => [1 2 5 6] 不是理想 
[9] => [1 9] 是理想  ,商环: [[1 9] [2 10] [3 11] [4 12] [5 13] [6 14] [7 15] [8 16]]
[R8Add]
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 
[R8Mul]
1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 
1 3 5 7 1 3 5 7 
1 4 7 6 5 8 3 2 
1 5 1 5 1 5 1 5 
1 6 3 8 5 2 7 4 
1 7 5 3 1 7 5 3 
1 8 7 2 5 4 3 6 
[10] => [1 2 9 10] 不是理想 
[13] => [1 13] 不是理想 
[14] => [1 2 13 14] 不是理想 
[5 9] => [1 5 9 13] 是理想  ,商环: [[1 5 9 13] [2 6 10 14] [3 7 11 15] [4 8 12 16]]
[R4Add]
1 2 3 4 
2 1 4 3 
3 4 1 2 
4 3 2 1 
[R4Mul]
1 1 1 1 
1 2 3 4 
1 3 1 3 
1 4 3 2 
[6 9] => [1 2 5 6 9 10 13 14] 不是理想 
8 阶子环:
[R8Add]
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 
[R8Mul]
1 1 1 1 1 1 1 1 
1 2 3 4 5 6 7 8 
1 3 1 3 1 3 1 3 
1 4 3 2 5 8 7 6 
1 5 1 5 1 5 1 5 
1 6 3 8 5 2 7 4 
1 7 1 7 1 7 1 7 
1 8 3 6 5 4 7 2 
time consume: 1.386851961s

gap> for i in [1..52] do R:=SmallRing(8,i);;M:=Ideals(R);;Print("N(R8_",i,")=",Size(M),",",List(M,Size),"\n");od;
N(R8_1)=4,[ 1, 2, 4, 8 ]
N(R8_2)=4,[ 1, 2, 4, 8 ]
N(R8_3)=4,[ 1, 2, 4, 8 ]
N(R8_4)=4,[ 1, 2, 4, 8 ]
N(R8_5)=8,[ 1, 2, 2, 2, 4, 4, 4, 8 ]
N(R8_6)=6,[ 1, 2, 4, 4, 4, 8 ]
N(R8_7)=6,[ 1, 2, 2, 4, 4, 8 ]
N(R8_8)=6,[ 1, 2, 4, 4, 4, 8 ]
N(R8_9)=6,[ 1, 2, 4, 4, 4, 8 ]
N(R8_10)=6,[ 1, 2, 4, 4, 4, 8 ]
N(R8_11)=6,[ 1, 2, 4, 4, 4, 8 ]
N(R8_12)=6,[ 1, 2, 4, 4, 4, 8 ]
N(R8_13)=6,[ 1, 2, 2, 4, 4, 8 ]
N(R8_14)=6,[ 1, 2, 2, 4, 4, 8 ]
N(R8_15)=5,[ 1, 2, 2, 4, 8 ]
N(R8_16)=8,[ 1, 2, 2, 2, 4, 4, 4, 8 ]
N(R8_17)=6,[ 1, 2, 2, 4, 4, 8 ]
N(R8_18)=6,[ 1, 2, 4, 4, 4, 8 ]
N(R8_19)=6,[ 1, 2, 4, 4, 4, 8 ]
N(R8_20)=5,[ 1, 2, 2, 4, 8 ]
N(R8_21)=6,[ 1, 2, 2, 2, 4, 8 ]
N(R8_22)=4,[ 1, 2, 4, 8 ]
N(R8_23)=6,[ 1, 2, 2, 2, 4, 8 ]
N(R8_24)=4,[ 1, 2, 4, 8 ]
N(R8_25)=16,[ 1, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 8 ]
N(R8_26)=8,[ 1, 2, 2, 2, 4, 4, 4, 8 ]
N(R8_27)=10,[ 1, 2, 2, 2, 2, 4, 4, 4, 4, 8 ]
N(R8_28)=6,[ 1, 2, 4, 4, 4, 8 ]
N(R8_29)=6,[ 1, 2, 2, 4, 4, 8 ]
N(R8_30)=6,[ 1, 2, 2, 2, 4, 8 ]
N(R8_31)=6,[ 1, 2, 4, 4, 4, 8 ]
N(R8_32)=6,[ 1, 2, 4, 4, 4, 8 ]
N(R8_33)=4,[ 1, 2, 4, 8 ]
N(R8_34)=6,[ 1, 2, 2, 4, 4, 8 ]
N(R8_35)=6,[ 1, 2, 2, 4, 4, 8 ]
N(R8_36)=5,[ 1, 2, 2, 4, 8 ]
N(R8_37)=5,[ 1, 2, 2, 4, 8 ]
N(R8_38)=6,[ 1, 2, 2, 4, 4, 8 ]
N(R8_39)=6,[ 1, 2, 4, 4, 4, 8 ]
N(R8_40)=8,[ 1, 2, 2, 2, 4, 4, 4, 8 ]
N(R8_41)=6,[ 1, 2, 2, 4, 4, 8 ]
N(R8_42)=4,[ 1, 2, 4, 8 ]
N(R8_43)=6,[ 1, 2, 2, 2, 4, 8 ]
N(R8_44)=5,[ 1, 2, 2, 4, 8 ]
N(R8_45)=6,[ 1, 2, 2, 2, 4, 8 ]
N(R8_46)=4,[ 1, 2, 4, 8 ]
N(R8_47)=6,[ 1, 2, 2, 4, 4, 8 ]
N(R8_48)=6,[ 1, 2, 2, 4, 4, 8 ]
N(R8_49)=5,[ 1, 2, 4, 4, 8 ]
N(R8_50)=8,[ 1, 2, 2, 2, 4, 4, 4, 8 ]
N(R8_51)=4,[ 1, 2, 4, 8 ]
N(R8_52)=2,[ 1, 8 ]
gap> for i in [1..11] do R:=SmallRing(4,i);;M:=Ideals(R);;Print("N(R4_",i,")=",Size(M),",",List(M,Size),"\n");od;
N(R4_1)=3,[ 1, 2, 4 ]
N(R4_2)=3,[ 1, 2, 4 ]
N(R4_3)=3,[ 1, 2, 4 ]
N(R4_4)=5,[ 1, 2, 2, 2, 4 ]
N(R4_5)=3,[ 1, 2, 4 ]
N(R4_6)=4,[ 1, 2, 2, 4 ]
N(R4_7)=3,[ 1, 2, 4 ]
N(R4_8)=3,[ 1, 2, 4 ]
N(R4_9)=3,[ 1, 2, 4 ]
N(R4_10)=4,[ 1, 2, 2, 4 ]
N(R4_11)=2,[ 1, 4 ]
20200316-20200319结论:
S(R8_6)=6,[ 1, 2, 4, 4, 4, 8 ]
S(R8_8)=8,[ 1, 2, 2, 2, 4, 4, 4, 8 ],R8_8有2个2阶子环不是理想
S(R8_9)=6,[ 1, 2, 4, 4, 4, 8 ]
S(R8_10)=8,[ 1, 2, 2, 2, 4, 4, 4, 8 ],R8_10有2个2阶子环不是理想
S(R8_12)=N(R8_12)=6,[ 1, 2, 4, 4, 4, 8 ]=[[1,1],[2,1],[4,5],[4,1],[4,2],[8,12]]
N(R8_19)=6,[ 1, 2, 4, 4, 4, 8 ]=[[1,1],[2,1],[4,2],[4,4],[4,2],[8,19]]
S(R8_19)=8,[ 1, 2, 2, 2, 4, 4, 4, 8 ]=[[1,1],[2,1],[2,1],[2,1],[4,2],[4,4],[4,2],[8,19]]
S(R8_16)=8,[ 1, 2, 2, 2, 4, 4, 4, 8 ]
S(R8_23)=6,[ 1, 2, 2, 2, 4, 8 ]
S(R8_45)=10,[ 1, 2, 2, 2, 2, 4, 4, 4, 4, 8 ],R8_45有1个2阶子环、3个4阶子环不是理想
S(R8_46)=6,[ 1, 2, 2, 4, 4, 8 ],R8_46有1个2阶子环、1个4阶子环不是理想
S(R8_48)=10,[ 1, 2, 2, 2, 2, 4, 4, 4, 4, 8 ],R8_48有2个2阶子环、2个4阶子环不是理想
S(R8_51)=6,[ 1, 2, 2, 2, 4, 8 ],R8_51有2个2阶子环不是理想
S(R8_52)=3,[ 1, 2, 8 ],F_8有1个2阶子环不是理想
S(R4_1)=3,[ 1, 2, 4 ]
S(R4_2)=3,[ 1, 2, 4 ]
S(R4_3)=3,[ 1, 2, 4 ]
S(R4_4)=5,[ 1, 2, 2, 2, 4 ]
S(R4_5)=4,[ 1, 2, 2, 4 ],R4_5有1个2阶子环不是理想
S(R4_6)=4,[ 1, 2, 2, 4 ]
S(R4_7)=5,[ 1, 2, 2, 2, 4 ],R4_7有2个2阶子环不是理想
S(R4_8)=5,[ 1, 2, 2, 2, 4 ],R4_8有2个2阶子环不是理想
S(R4_9)=4,[ 1, 2, 2, 4 ],R4_9有1个2阶子环不是理想
S(R4_10)=5,[ 1, 2, 2, 2, 4 ],R4_10有1个2阶子环不是理想
S(R4_11)=3,[ 1, 2, 4 ],R4_11有1个2阶子环不是理想root@iZ14rcmneyrcltZ:~/cpptest/gotest# go build ZnElement.go
root@iZ14rcmneyrcltZ:~/cpptest/gotest# ./ZnElement
S(R4_1):
[1] => [1] 是理想
[2] => [1 2 3 4] 是理想
[3] => [1 3] 是理想
time consume: 176.842µs
S(R4_2):
[1] => [1] 是理想
[2] => [1 2 3 4] 是理想
[3] => [1 3] 是理想
time consume: 114.505µs
S(R4_3):
[1] => [1] 是理想
[2] => [1 2 3 4] 是理想
[3] => [1 3] 是理想
time consume: 134.073µs
S(R4_4):
[1] => [1] 是理想
[2] => [1 2] 是理想
[3] => [1 3] 是理想
[4] => [1 4] 是理想
[2 3] => [1 2 3 4] 是理想
time consume: 172.846µs
S(R4_5):
[1] => [1] 是理想
[2] => [1 2] 是理想
[3] => [1 2 3 4] 是理想
time consume: 111.296µs
S(R4_6):
[1] => [1] 是理想
[2] => [1 2] 是理想
[3] => [1 3] 是理想
[4] => [1 2 3 4] 是理想
time consume: 151.816µs
S(R4_7):
[1] => [1] 是理想
[2] => [1 2] 是理想
[3] => [1 3] 不是理想
[4] => [1 4] 不是理想
[2 3] => [1 2 3 4] 是理想
time consume: 172.831µs
S(R4_8):
[1] => [1] 是理想
[2] => [1 2] 是理想
[3] => [1 3] 不是理想
[4] => [1 4] 不是理想
[2 3] => [1 2 3 4] 是理想
time consume: 182.596µs
S(R4_9):
[1] => [1] 是理想
[2] => [1 2 3 4] 是理想
[3] => [1 3] 不是理想
[4] => [1 4] 是理想
time consume: 161.263µs
S(R4_10):
[1] => [1] 是理想
[2] => [1 2] 不是理想
[3] => [1 3] 是理想
[4] => [1 4] 是理想
[2 3] => [1 2 3 4] 是理想
time consume: 198.596µs
S(R4_11):
[1] => [1] 是理想
[2] => [1 2] 不是理想
[3] => [1 2 3 4] 是理想
time consume: 132.663µs
S(R8_1):
[1] => [1] 是理想
[2] => [1 2 3 4] 是理想
[3] => [1 3] 是理想
[5] => [1 5] 是理想
[6] => [1 3 6 8] 是理想
[7] => [1 7] 是理想
[2 5] => [1 2 3 4 5 6 7 8] 是理想
[3 5] => [1 3 5 7] 是理想
time consume: 1.332945ms
S(R8_2):
[1] => [1] 是理想
[2] => [1 2 5 6] 是理想
[3] => [1 3 5 7] 是理想
[4] => [1 4 5 8] 是理想
[5] => [1 5] 是理想
[2 3] => [1 2 3 4 5 6 7 8] 是理想
time consume: 1.126224ms
S(R8_3):
[1] => [1] 是理想
[2] => [1 2] 是理想
[3] => [1 3 5 7] 是理想
[4] => [1 4 5 8] 是理想
[5] => [1 5] 是理想
[6] => [1 6] 是理想
[2 3] => [1 2 3 4 5 6 7 8] 是理想
[2 5] => [1 2 5 6] 是理想
time consume: 1.162741ms
S(R8_4):
[1] => [1] 是理想
[2] => [1 2] 是理想
[3] => [1 2 3 4 5 6 7 8] 是理想
[5] => [1 5] 是理想
[6] => [1 6] 是理想
[2 5] => [1 2 5 6] 是理想
time consume: 1.200052ms

package main
 
import (
    "fmt"
    "time"
    "os"    
)

type ZmodnZObj struct {
   m_k,m_mod int
}

var g_Z4Add [][]int=[][]int{//GAP4中Z/4Z的加法表,0*a a   2*a -a对应0 1 2 3
    {1,2,3,4},
    {2,3,4,1},
    {3,4,1,2},
    {4,1,2,3},
}

var g_Z4Mul [][]int=[][]int{//GAP4中Z/4Z的乘法表,0*a a   2*a -a对应0 1 2 3
    {1,1,1,1},
    {1,2,3,4},
    {1,3,1,3},
    {1,4,3,2},
}

var g_R4_2Mul [][]int=[][]int{//GAP4中R4_2的乘法表,0*a a   2*a -a对应0 1 2 3
    {1,1,1,1},
    {1,3,1,3},
    {1,1,1,1},
    {1,3,1,3},
}

var g_R4_1Mul [][]int=[][]int{
    {1,1,1,1},
    {1,1,1,1},
    {1,1,1,1},
    {1,1,1,1},
}

var g_M4Mul [][]int=[][]int{
    {0,0,0,0},
    {0,0,0,0},
    {0,0,0,0},
    {0,0,0,0},
}

var g_F4Add [][]int=[][]int{
    {0,1,2,3},
    {1,0,3,2},
    {2,3,0,1},
    {3,2,1,0},
}

var g_F4Mul [][]int=[][]int{
    {0,0,0,0},
    {0,1,2,3},
    {0,2,3,1},
    {0,3,1,2},
}

var g_F2F2Mul [][]int=[][]int{//F_2×F_2的乘法表,0,1,v,1+v对应0,1,2,3
    {0,0,0,0},
    {0,1,2,3},
    {0,2,2,0},
    {0,3,0,3},
}

var g_R4_9Mul [][]int=[][]int{//GAP4中R4_9=F_2[x]/(x^2)的乘法表,0*a b   a   a+b对应0 1 2 3
    {0,0,0,0},
    {0,2,1,3},
    {0,1,2,3},
    {0,3,3,0},
}

var g_R4_8Mul [][]int=[][]int{//GAP4中R4_8的乘法表,0*a b   a   a+b对应0 1 2 3
    {0,0,0,0},
    {0,0,1,1},
    {0,0,2,2},
    {0,0,3,3},
}

var g_R4_7Mul [][]int=[][]int{//GAP4中R4_7的乘法表,0*a b   a   a+b对应0 1 2 3
    {0,0,0,0},
    {0,0,0,0},
    {0,1,2,3},
    {0,1,2,3},
}

var g_R4_6Mul [][]int=[][]int{//GAP4中M_2×F_2的乘法表,0*a b   a   a+b对应0 1 2 3
    {0,0,0,0},
    {0,0,0,0},
    {0,0,2,2},
    {0,0,2,2},
}

var g_R4_5Mul [][]int=[][]int{//GAP4中R4_5的乘法表,0*a b   a   a+b对应0 1 2 3
    {0,0,0,0},
    {0,0,0,0},
    {0,0,1,1},
    {0,0,1,1},
}

var g_R8Add [][]int=[][]int{
    {1,2,3,4,5,6,7,8},
    {2,3,4,1,6,7,8,5},
    {3,4,1,2,7,8,5,6},
    {4,1,2,3,8,5,6,7},
    {5,6,7,8,1,2,3,4},
    {6,7,8,5,2,3,4,1},
    {7,8,5,6,3,4,1,2},
    {8,5,6,7,4,1,2,3},
}

var g_R8Mul [][]int=[][]int{
    {1,1,1,1,1,1,1,1},
    {1,3,1,3,1,3,1,3},
    {1,1,1,1,1,1,1,1},
    {1,3,1,3,1,3,1,3},    
    {1,1,1,1,1,1,1,1},
    {1,3,1,3,1,3,1,3},    
    {1,1,1,1,1,1,1,1},
    {1,3,1,3,1,3,1,3},        
}

var g_R8_6Add [][]int=[][]int{
    {1,2,3,4,5,6,7,8},
    {2,1,4,3,6,5,8,7},
    {3,4,5,6,7,8,1,2},
    {4,3,6,5,8,7,2,1},
    {5,6,7,8,1,2,3,4},
    {6,5,8,7,2,1,4,3},
    {7,8,1,2,3,4,5,6},
    {8,7,2,1,4,3,6,5},
}

var g_R8_6Mul [][]int=[][]int{
    {1,1,1,1,1,1,1,1},
    {1,5,1,5,1,5,1,5},
    {1,1,1,1,1,1,1,1},
    {1,5,1,5,1,5,1,5},    
    {1,1,1,1,1,1,1,1},
    {1,5,1,5,1,5,1,5},    
    {1,1,1,1,1,1,1,1},
    {1,5,1,5,1,5,1,5},        
}

var g_R8_16Mul [][]int=[][]int{
    {1,1,1,1,1,1,1,1},
    {1,1,1,1,1,1,1,1},
    {1,1,5,5,1,1,5,5},
    {1,1,5,5,1,1,5,5},
    {1,1,1,1,1,1,1,1},    
    {1,1,1,1,1,1,1,1},
    {1,1,5,5,1,1,5,5},    
    {1,1,5,5,1,1,5,5},        
}

var g_R8_23Mul [][]int=[][]int{
    {1,1,1,1,1,1,1,1},
    {1,1,1,1,1,1,1,1},
    {1,1,2,2,1,1,2,2},
    {1,1,2,2,1,1,2,2},
    {1,1,1,1,1,1,1,1},    
    {1,1,1,1,1,1,1,1},
    {1,1,2,2,1,1,2,2},    
    {1,1,2,2,1,1,2,2},        
}
            
var g_Z4 []ZmodnZObj=[]ZmodnZObj{
   ZmodnZObj{0,4},
   ZmodnZObj{1,4},
   ZmodnZObj{2,4},
   ZmodnZObj{3,4}}
   
var g_Z5 []ZmodnZObj=[]ZmodnZObj{
   ZmodnZObj{0,5},
   ZmodnZObj{1,5},
   ZmodnZObj{2,5},
   ZmodnZObj{3,5},   
   ZmodnZObj{4,5}}
   
var g_Z6 []ZmodnZObj=[]ZmodnZObj{
   ZmodnZObj{0,6},
   ZmodnZObj{1,6},
   ZmodnZObj{2,6},
   ZmodnZObj{3,6},   
   ZmodnZObj{4,6}} 
   
func (this *ZmodnZObj) isEqual(a ZmodnZObj) bool {
  return (this.m_k==a.m_k && this.m_mod==a.m_mod)
 }
 
func (this *ZmodnZObj) getName() string {
  return fmt.Sprintf("ZmodnZObj(%d,%d)",this.m_k,this.m_mod)
}
 
func (this *ZmodnZObj) Add(a ZmodnZObj) ZmodnZObj {
    var ret ZmodnZObj
    ret.m_mod=this.m_mod
    ret.m_k=(this.m_k+a.m_k)%this.m_mod
    return ret
 }
 
func (this *ZmodnZObj) InvAdd() ZmodnZObj {
    var ret ZmodnZObj
    ret.m_mod=this.m_mod
    ret.m_k=(this.m_mod*2-this.m_k)%this.m_mod
    return ret
 }
 
func (this *ZmodnZObj) Mul(a ZmodnZObj) ZmodnZObj {
    var ret ZmodnZObj
    ret.m_mod=this.m_mod
    ret.m_k=(this.m_k*a.m_k)%this.m_mod
    return ret
 }

//InverseMutable(a ZmodnZObj) bool {
func (this *ZmodnZObj) InvMul(a ZmodnZObj) ZmodnZObj {
    var ret ZmodnZObj
    for i:=0;i<this.m_mod;i++ {
        ret=ZmodnZObj{this.m_mod,i}
        if(ret.Mul(a)==ZmodnZObj{this.m_mod,1}){
            return ret
        }
    }    
    return ZmodnZObj{0,0}
 }
 
func (this *ZmodnZObj) Idx(v *[]ZmodnZObj) int {
  for i:=0;i<len(*v);i++ {
   if(this.isEqual((*v)[i])){
    return i
    }
  }
  return -1
 } 
 
func IsInFR(v *[]int,m int)int {
    for i:=0;i<len((*v));i++{
        if((*v)[i]==m){
            return i;
        }
    }
    return -1;
}

func FR(A *[][]int,M *[][]int,v *[]int)[]int {

    FR := []int{}
    for i:=0;i<len((*v));i++{
        FR=append(FR,(*v)[i])
    }    
    var cnt,cnt1 int
    cnt1=cnt    
    for {
        cnt=len(FR)
        for i:=0;i<cnt;i++{
            for j:=0;j<cnt;j++{
            IJ:=(*A)[FR[i]-1][FR[j]-1];
            bIn := IsInFR(&FR,IJ)
            if(bIn==-1){
            FR=append(FR,IJ)
            }
            IJ1:=(*M)[FR[i]-1][FR[j]-1];            
            bIn1 := IsInFR(&FR,IJ1)
            if(bIn1==-1){
            FR=append(FR,IJ1)
            }            
        }
        }
        cnt1=len(FR)
     if cnt1==cnt {
            break
        }
    }
    BubbleSort(&FR)
    return FR
}

func BubbleSort(arr *[]int){
    //fmt.Println("排序前arr=",(*arr))
    temp := 0
    for i := 0;i < len(*arr) - 1;i++{
        for j := 0 ;j<len(*arr) -1 - i;j++{
            if((*arr)[j] > (*arr)[j+1]){
                temp = (*arr)[j]
                (*arr)[j] = (*arr)[j+1]
                (*arr)[j+1] = temp
            }
        }
    }
    //fmt.Println("排序后arr=",(*arr))
}

func Order(n,m int)[]int {
    ret := []int{}
    var mi int=m
    for {
        if mi==0 {
            break
        }
        ret=append(ret,mi)
        mi=(mi+m)%n
    }    
    ret=append(ret,mi)
    BubbleSort(&ret)
    return ret
}

func ToNormal(v *[]int,a int)int {
    for i:=0;i<len(*v);i++ {
        if((*v)[i]==a){
            return i
        }
    }
    return -1
}

//Zn=Z/nZ=1Z/nZ=ZnmTable(n,1)
func ZnTable(n int)([][]int,[][]int){
    vZn := []ZmodnZObj{}
    for i:=0;i<n;i++{
        vZn=append(vZn,ZmodnZObj{i,n})
    }
    vvAdd:=[][]int{}
    vvMul:=[][]int{}
     for i:=0;i<n;i++{
      I:=[]int{}
      I1:=[]int{}
      for j:=0;j<n;j++{
       IJ:=vZn[i].Add(vZn[j])
       ij:=IJ.Idx(&vZn)
       I = append(I,ij+1)
       IJ1:=vZn[i].Mul(vZn[j])
       ij1:=IJ1.Idx(&vZn)
       I1 = append(I1,ij1+1)       
      }
      vvAdd = append(vvAdd,I)
      vvMul = append(vvMul,I1)      
     }
     return vvAdd,vvMul
}

//循环环mZ/nZ=RingByGenerators([ZmodnZObj(m,n)])
func ZnmTable(n,m int)([][]int,[][]int){
    vZnm := Order(n,m)
    s:=len(vZnm)
    vZn := []ZmodnZObj{}
    for i:=0;i<s;i++{
        vZn=append(vZn,ZmodnZObj{vZnm[i],n})
    }
    vvAdd:=[][]int{}
    vvMul:=[][]int{}
     for i:=0;i<s;i++{
      I:=[]int{}
      I1:=[]int{}
      for j:=0;j<s;j++{
       IJ:=vZn[i].Add(vZn[j])
       ij:=IJ.Idx(&vZn)
       I = append(I,ij+1)
       IJ1:=vZn[i].Mul(vZn[j])
       ij1:=IJ1.Idx(&vZn)
       I1 = append(I1,ij1+1)       
      }
      vvAdd = append(vvAdd,I)
      vvMul = append(vvMul,I1)      
     }
     return vvAdd,vvMul
}

func PrintTable(vv [][]int){
    for _, v := range vv {
            for _, v2 := range v {
                fmt.Printf("%d ",v2)
            }
            fmt.Println()
        }
    return
}

func WriteTable(vv,vv1 [][]int,fn string) {
    f, err := os.OpenFile(fmt.Sprintf("%s.txt",fn), os.O_RDWR|os.O_CREATE, os.ModePerm)
    if err != nil {
        panic(err)
    }
    defer f.Close()
    
    n:=len(vv)
    var buf string
    buf = fmt.Sprintf("[R%dAdd]\n",n)
    f.WriteString(buf)    
    for i:=0;i<n;i++{
        for j:=0;j<n;j++{
            buf = fmt.Sprintf("%d ",vv[i][j])
            f.WriteString(buf)
        }
        f.WriteString("\n");
    }
    buf = fmt.Sprintf("[R%dMul]\n",n)
    f.WriteString(buf)    
    for i:=0;i<n;i++{
        for j:=0;j<n;j++{
            buf = fmt.Sprintf("%d ",vv1[i][j])
            f.WriteString(buf)
        }
        f.WriteString("\n");
    }    
}

func Arr1_2(a *[]int,m,n int)[][]int{
res := [][]int{}
for i:=0;i<m;i++ {
            t := []int{}
            for j:=0;j<n;j++ {
                r := (*a)[i*n+j]
                t = append(t, r)
            }
            res = append(res,t)
        }
return res
}

// n中取m的排列数
func mathPailie(n int, m int) int {
    return jieCheng(n) / jieCheng(n-m)
}
 
// n中取m的组合数
func mathZuhe(n int, m int) int {
    return jieCheng(n) / (jieCheng(n-m) * jieCheng(m))
}
 
// 阶乘
func jieCheng(n int) int {
    result := 1
    for i := 2; i <= n; i++ {
        result *= i
    }
 
    return result
}

// 根据索引号数组得到元素数组
func findNumsByIndexs(nums []int, indexs [][]int) [][]int {
    if len(indexs) == 0 {
        return [][]int{}
    }
 
    result := make([][]int, len(indexs))
 
    for i, v := range indexs {
        line := make([]int, 0)
        for j, v2 := range v {
            if v2 == 1 {
                line = append(line, nums[j])
            }
        }
        result[i] = line
    }
 
    return result
}

func moveOneToLeft(leftNums []int) {
    //计算有几个1
    sum := 0
    for i := 0; i < len(leftNums); i++ {
        if leftNums[i] == 1 {
            sum++
        }
    }
 
    //将前sum个改为1,之后的改为0
    for i := 0; i < len(leftNums); i++ {
        if i < sum {
            leftNums[i] = 1
        } else {
            leftNums[i] = 0
        }
    }
}

// 将ele复制后添加到arr中,返回新的数组
func addTo(arr [][]int, ele []int) [][]int {
    newEle := make([]int, len(ele))
    copy(newEle, ele)
    arr = append(arr, newEle)
 
    return arr
}

// n中取m
func zuheResult(n int, m int) [][]int {
    if m < 1 || m > n {
        fmt.Println("Illegal argument. Param m must between 1 and len(nums).")
        return [][]int{}
    }
 
    //保存最终结果的数组,总数直接通过数学公式计算
    result := make([][]int, 0, mathZuhe(n, m))
    //保存每一个组合的索引的数组,1表示选中,0表示未选中
    indexs := make([]int, n)
    for i := 0; i < n; i++ {
        if i < m {
            indexs[i] = 1
        } else {
            indexs[i] = 0
        }
    }
 
    //第一个结果
    result = addTo(result, indexs)
    for {
        find := false
        //每次循环将第一次出现的 1 0 改为 0 1,同时将左侧的1移动到最左侧
        for i := 0; i < n-1; i++ {
            if indexs[i] == 1 && indexs[i+1] == 0 {
                find = true
 
                indexs[i], indexs[i+1] = 0, 1
                if i > 1 {
                    moveOneToLeft(indexs[:i])
                }
                result = addTo(result, indexs)
 
                break
            }
        }
 
        //本次循环没有找到 1 0 ,说明已经取到了最后一种情况
        if !find {
            break
        }
    }
 
    return result
}

func IsEqual(a *[]int,b *[]int)bool {
    n:=len((*a))
    if(len((*b))!=n){
        return false
    }
    for i:=0;i<n;i++{
        if((*a)[i]!=(*b)[i]){
            return false
        }
    }
    return true
}

func IsInS(S *[][]int,v *[]int)int {
    n:=len((*S))
    for i:=0;i<n;i++{
        bRet := IsEqual(&(*S)[i],v)
            if(bRet){
               return i
            }
    }
    return -1
}

func VOrder(G *[][]int,m int)[]int {
    ret := []int{}
    var mi int=m
    ret=append(ret,1)
    for {
        if mi==1 {
            break
        }
        ret=append(ret,mi)
        mi=(*G)[mi-1][m-1]
    }
    return ret
}

func Inv(G *[][]int,m int)int {
    v:=VOrder(G,m)
    var ord int=len(v)
    //fmt.Println("v=",v,"m=",m,",ord=",ord,"=>",v[ord-1])
    return v[ord-1]
}

func IsNormalSubgroup(G *[][]int,S *[]int,A *[]int) bool{
 //A是S的子集
 for i:=0;i<len(*A);i++{
  if(IsInFR(S,(*A)[i])==-1){
   return false
  }
 }
 //进一步判断是否是正规子群
 for i:=0;i<len(*S);i++{
  for j:=0;j<len(*A);j++{
   gh:=(*G)[(*S)[i]-1][(*A)[j]-1]
   g1:=Inv(G,(*S)[i])
   ghg1:=(*G)[gh-1][g1-1]
   //fmt.Println("G=",(*G),"S,=",S,",A=",A,"i=",i,",j=",j,",g=",(*S)[i],",h=",(*A)[j],",g1=",g1,",gh=",gh,",ghg1=",ghg1)
   if(IsInFR(A,ghg1)==-1){
    return false
   }
  }
 }
 return true
}

// 判断子环A是否是环S的理想
func IsIdeal(G *[][]int,M *[][]int,S *[]int,A *[]int) bool{
 //A是S的子集
 for i:=0;i<len(*A);i++{
  if(IsInFR(S,(*A)[i])==-1){
   return false
  }
 }
 //进一步判断是否是理想
 for i:=0;i<len(*S);i++{//任意纯量环元素c
  for j:=0;j<len(*A);j++{//任意向量模元素a
   ca:=(*M)[(*S)[i]-1][(*A)[j]-1]
   ac:=(*M)[(*A)[j]-1][(*S)[i]-1]
   if(IsInFR(A,ca)==-1||IsInFR(A,ac)==-1){
    return false
   }
  }
 }
 return true
}

// 环R(A,M)的所有子环S(R)
func AllSubrings(A *[][]int,M *[][]int) {
    
    S := [][]int{}
    n:=len(*A)
    nums := []int{}
    for i:=1;i<=n;i++{
        nums=append(nums,i)
    }    
    timeStart := time.Now()
    for m:=1;m<=n;m++{
        indexs := zuheResult(n, m)
        result := findNumsByIndexs(nums, indexs)
        for _, v := range result {
            vFR:=FR(A,M,&v)
            if(IsInS(&S,&vFR)==-1){
                S=append(S,vFR) 
                bN:=IsNormalSubgroup(A,&nums,&vFR)
                bI:=IsIdeal(A,M,&nums,&vFR)    
                if(!bN){
                   fmt.Println("出错了,加法群的子群一定是正规子群")
                }                
                if(bI){
                fmt.Println(v,"=>",vFR,"是理想")
                }else{
                fmt.Println(v,"=>",vFR,"不是理想")
                }                
                //fmt.Println(v,"=>",vFR)
            //}else{
            //   fmt.Println(v,"->",vFR)
            }
        }
    }
    timeEnd := time.Now()
    fmt.Println("time consume:", timeEnd.Sub(timeStart))
}

func test1(){
    I:=g_Z4[0]//零元
    a:=g_Z4[1]//乘法幺元
    aa:=g_Z4[2]
    aaa:=g_Z4[3]
    fmt.Println("I=",I.getName())
    fmt.Println("a=",a.getName())
    fmt.Println("aa=",aa)
    fmt.Println("aaa=",aaa)    
    fmt.Println("I-I=",I.InvAdd())        
    fmt.Println("I-a=",a.InvAdd())    
    fmt.Println("I-aa=",aa.InvAdd())        
    fmt.Println("I-aaa=",aaa.InvAdd())
    fmt.Println("aa*aaa=",aa.Mul(aaa))
    fmt.Println("aaa*aa=",aaa.Mul(aa))
}

func test2() {
{
vv1,vv2:=ZnTable(4)
fmt.Println("ShowAdditionTable(R4_3)=",vv1)
PrintTable(vv1)
fmt.Println("ShowMultiplicationTable(R4_3)=",vv2)
PrintTable(vv2)
WriteTable(vv1,vv2,"R4_3")
}
{
vv1,vv2:=ZnmTable(8,2)
fmt.Println("ShowAdditionTable(R4_2)=",vv1)
PrintTable(vv1)
fmt.Println("ShowMultiplicationTable(R4_2)=",vv2)
PrintTable(vv2)
WriteTable(vv1,vv2,"R4_2")
}
}

func test3() {

var v1 []int=[]int{2,3}
var v2 []int=[]int{2}
var v3 []int=[]int{3}
var v4 []int=[]int{4}
{
fmt.Println("S(R4_3):")
var v1FR []int=FR(&g_Z4Add,&g_Z4Mul,&v1)
var v2FR []int=FR(&g_Z4Add,&g_Z4Mul,&v2)
var v3FR []int=FR(&g_Z4Add,&g_Z4Mul,&v3)
var v4FR []int=FR(&g_Z4Add,&g_Z4Mul,&v4)
fmt.Println("v1=",v1)
fmt.Println("v1FR=",v1FR)
fmt.Println("v2=",v2)
fmt.Println("v2FR=",v2FR)
fmt.Println("v3=",v3)
fmt.Println("v3FR=",v3FR)
fmt.Println("v4=",v4)
fmt.Println("v4FR=",v4FR)
}
{
fmt.Println("S(R4_2):")
var v1FR []int=FR(&g_Z4Add,&g_R4_2Mul,&v1)
var v2FR []int=FR(&g_Z4Add,&g_R4_2Mul,&v2)
var v3FR []int=FR(&g_Z4Add,&g_R4_2Mul,&v3)
var v4FR []int=FR(&g_Z4Add,&g_R4_2Mul,&v4)
fmt.Println("v1=",v1)
fmt.Println("v1FR=",v1FR)
fmt.Println("v2=",v2)
fmt.Println("v2FR=",v2FR)
fmt.Println("v3=",v3)
fmt.Println("v3FR=",v3FR)
fmt.Println("v4=",v4)
fmt.Println("v4FR=",v4FR)
}
}

func main() {
    if(true){
    A:=[]*[][]int{&g_Z4Add,&g_Z4Add,&g_Z4Add,&g_F4Add,&g_F4Add,&g_F4Add,&g_F4Add,&g_F4Add,&g_F4Add,&g_F4Add,&g_F4Add}
    M:=[]*[][]int{&g_R4_1Mul,&g_R4_2Mul,&g_Z4Mul,&g_M4Mul,&g_R4_5Mul,&g_R4_6Mul,&g_R4_7Mul,&g_R4_8Mul,&g_R4_9Mul,&g_F2F2Mul,&g_F4Mul}    
    delt:=[]int{0,0,0,1,1,1,1,1,1,1,1}
    for i, v := range g_F4Add {
            for j, _ := range v {
                g_F4Add[i][j]+=1
            }
        }    
    for k:=0;k<len(M);k++{
        for i, v := range *M[k] {
                for j, _ := range v {
                    (*M[k])[i][j]+=delt[k]            
                }
            }
        fmt.Printf("S(R4_%d):\n",k+1)
        AllSubrings(A[k],M[k])    
    }
    }

   {
    A:=[]*[][]int{&g_R8Add,&g_R8_6Add,&g_R8_6Add,&g_R8_6Add}
    M:=[]*[][]int{&g_R8Mul,&g_R8_6Mul,&g_R8_16Mul,&g_R8_23Mul}    
    for k:=0;k<len(M);k++{
        fmt.Printf("S(R8_%d):\n",k+1)
        AllSubrings(A[k],M[k])    
    }
    }
}

更多推荐

有限环子环和理想个数的计算