N3、C2不变量暂无作用(N3与N0、C2与C1似乎重复了)。
C1(GAP[32,4])=[[0,28],[1,4]]
C2(GAP[32,4])=[[0,0,28],[0,1,3],[1,1,1]]
Nk(GAP[32,4])=[[1,1,1],[2,1,3],[4,1,4],[4,2,8],[8,2,16]]
C1(GAP[32,12])=[[0,24],[1,8]]
C2(GAP[32,12])=[[0,0,24],[0,1,7],[1,1,1]]
Nk(GAP[32,12])=[[1,1,1],[2,1,3],[4,1,4],[4,2,8],[8,2,16]]
C1(GAP[32,13])=[[0,16],[1,16]]
C2(GAP[32,13])=[[0,0,16],[0,1,15],[1,1,1]]
Nk(GAP[32,13])=[[1,1,1],[2,1,3],[4,2,4],[4,4,16],[8,2,8]]
C1(GAP[32,14])=[[0,24],[1,8]]
C2(GAP[32,14])=[[0,0,24],[0,1,7],[1,1,1]]
Nk(GAP[32,14])=[[1,1,1],[2,1,3],[4,2,4],[4,4,16],[8,2,8]]
C1(GAP[32,30])=[[0,8],[1,24]]
C2(GAP[32,30])=[[0,0,8],[0,1,23],[1,1,1]]
Nk(GAP[32,30])=[[1,1,1],[2,1,3],[2,2,4],[2,4,4],[4,2,8],[4,4,12]]
C1(GAP[32,31])=[[0,8],[1,24]]
C2(GAP[32,31])=[[0,0,8],[0,1,23],[1,1,1]]
Nk(GAP[32,31])=[[1,1,1],[2,1,3],[2,4,8],[4,2,12],[4,4,8]]
D:\MathTool\gaptool>IdGroup G32.4.txt
[4,12,]
GAP[32,0]:
N0=1,3,12,16,0,0
S2=0,3,33,124,144,192
kKEZDCANS=20,[8,12,0,0,0,0],8,8,2,0,0,1,1
I1I2=[[1,1,1],[2,1,3],[4,1,12],[8,1,16]],[[2,1,3],[4,1,30],[4,2,3],[8,1,88],[8,2,36],[16,2,48],[16,5,96]]
D:\MathTool\gaptool>IdGroup G32.12.txt
[4,12,]
GAP[32,0]:
N0=1,3,12,16,0,0
S2=0,3,33,124,144,192
kKEZDCANS=20,[8,12,0,0,0,0],8,8,2,0,0,1,1
I1I2=[[1,1,1],[2,1,3],[4,1,12],[8,1,16]],[[2,1,3],[4,1,30],[4,2,3],[8,1,88],[8,2,36],[16,2,48],[16,5,96]]
D:\MathTool\gaptool>IdGroup G32.13.txt
[13,14,]
GAP[32,0]:
N0=1,3,20,8,0,0
S2=0,3,53,104,144,192
kKEZDCANS=14,[4,6,4,0,0,0],8,4,4,0,0,1,1
I1I2=[[1,1,1],[2,1,3],[4,1,20],[8,1,8]],[[2,1,3],[4,1,50],[4,2,3],[8,1,44],[8,2,60],[16,4,96],[16,5,48]]
D:\MathTool\gaptool>IdGroup G32.14.txt
[13,14,]
GAP[32,0]:
N0=1,3,20,8,0,0
S2=0,3,53,104,144,192
kKEZDCANS=14,[4,6,4,0,0,0],8,4,4,0,0,1,1
I1I2=[[1,1,1],[2,1,3],[4,1,20],[8,1,8]],[[2,1,3],[4,1,50],[4,2,3],[8,1,44],[8,2,60],[16,4,96],[16,5,48]]
[4,12,]
N3(GAP[32,0])=[[1,1,1,1],[1,2,2,3],[1,4,4,12],[1,8,8,16],[2,1,2,3],[2,2,1,3],[2,2,2,6],[2,4,4,36],[2,8,8,48],[4,1,4,12],
[4,2,4,36],[4,4,1,12],[4,4,2,36],[4,4,4,96],[4,8,8,192],[8,1,8,16],[8,2,8,48],[8,4,8,192],[8,8,1,16],[8,8,2,48],[8,8,4,1
92]]
[4,12,]
N3(GAP[32,0])=[[1,1,1,1],[1,2,2,3],[1,4,4,12],[1,8,8,16],[2,1,2,3],[2,2,1,3],[2,2,2,6],[2,4,4,36],[2,8,8,48],[4,1,4,12],
[4,2,4,36],[4,4,1,12],[4,4,2,36],[4,4,4,96],[4,8,8,192],[8,1,8,16],[8,2,8,48],[8,4,8,192],[8,8,1,16],[8,8,2,48],[8,8,4,1
92]]
[13,14,]
N3(GAP[32,0])=[[1,1,1,1],[1,2,2,3],[1,4,4,20],[1,8,8,8],[2,1,2,3],[2,2,1,3],[2,2,2,6],[2,4,4,60],[2,8,8,24],[4,1,4,20],[
4,2,4,60],[4,4,1,20],[4,4,2,60],[4,4,4,192],[4,4,8,128],[4,8,4,128],[4,8,8,32],[8,1,8,8],[8,2,8,24],[8,4,4,128],[8,4,8,3
2],[8,8,1,8],[8,8,2,24],[8,8,4,32]]
[13,14,]
N3(GAP[32,0])=[[1,1,1,1],[1,2,2,3],[1,4,4,20],[1,8,8,8],[2,1,2,3],[2,2,1,3],[2,2,2,6],[2,4,4,60],[2,8,8,24],[4,1,4,20],[
4,2,4,60],[4,4,1,20],[4,4,2,60],[4,4,4,192],[4,4,8,128],[4,8,4,128],[4,8,8,32],[8,1,8,8],[8,2,8,24],[8,4,4,128],[8,4,8,3
2],[8,8,1,8],[8,8,2,24],[8,8,4,32]]
#include "FiniteGroup.h"
#include "quotientGroup.h"
#include <fstream>
#include <complex>
using namespace std;
int g_G32_4[32][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,25,26,27,28,29,30,31,32},
{2,4,7,8,9,10,11,6,14,15,17,18,19,20,21,22,13,23,24,16,1,26,27,28,29,30,25,3,31,5,32,12},
{3,19,5,11,12,13,22,28,29,7,14,1,16,23,24,25,30,10,9,32,17,18,4,26,6,31,21,20,2,27,15,8},
{4,8,11,6,14,15,17,10,20,21,13,23,24,16,1,26,19,27,28,22,2,30,25,3,31,5,29,7,32,9,12,18},
{5,9,12,14,1,16,18,20,2,22,23,3,25,4,26,6,27,7,29,8,30,10,11,31,13,15,17,32,19,21,24,28},
{6,10,13,15,16,1,19,21,22,2,24,25,3,26,4,5,28,29,7,30,8,9,31,11,12,14,32,17,18,20,23,27},
{7,24,9,17,18,19,26,3,31,11,20,2,22,27,28,29,5,15,14,12,13,23,8,30,10,32,1,16,4,25,21,6},
{8,6,17,10,20,21,13,15,16,1,19,27,28,22,2,30,24,25,3,26,4,5,29,7,32,9,31,11,12,14,18,23},
{9,14,18,20,2,22,23,16,4,26,27,7,29,8,30,10,25,11,31,6,5,15,17,32,19,21,13,12,24,1,28,3},
{10,15,19,21,22,2,24,1,26,4,28,29,7,30,8,9,3,31,11,5,6,14,32,17,18,20,12,13,23,16,27,25},
{11,28,14,13,23,24,30,7,32,17,16,4,26,25,3,31,9,21,20,18,19,27,6,5,15,12,2,22,8,29,1,10},
{12,29,1,23,3,25,10,32,19,18,4,5,6,11,31,13,21,22,2,28,27,7,14,15,16,24,30,8,9,17,26,20},
{13,7,16,24,25,3,9,17,18,19,26,6,5,31,11,12,20,2,22,27,28,29,15,14,1,23,8,30,10,32,4,21},
{14,20,23,16,4,26,27,22,8,30,25,11,31,6,5,15,29,17,32,10,9,21,13,12,24,1,19,18,28,2,3,7},
{15,21,24,1,26,4,28,2,30,8,3,31,11,5,6,14,7,32,17,9,10,20,12,13,23,16,18,19,27,22,25,29},
{16,22,25,26,6,5,29,30,10,9,31,13,12,15,14,1,32,19,18,21,20,2,24,23,3,4,28,27,7,8,11,17},
{17,3,20,19,27,28,5,11,12,13,22,8,30,29,7,32,14,1,16,23,24,25,10,9,21,18,4,26,6,31,2,15},
{18,31,2,27,7,29,15,12,24,23,8,9,10,17,32,19,1,26,4,3,25,11,20,21,22,28,5,6,14,13,30,16},
{19,11,22,28,29,7,14,13,23,24,30,10,9,32,17,18,16,4,26,25,3,31,21,20,2,27,6,5,15,12,8,1},
{20,16,27,22,8,30,25,26,6,5,29,17,32,10,9,21,31,13,12,15,14,1,19,18,28,2,24,23,3,4,7,11},
{21,1,28,2,30,8,3,4,5,6,7,32,17,9,10,20,11,12,13,14,15,16,18,19,27,22,23,24,25,26,29,31},
{22,26,29,30,10,9,31,5,15,14,32,19,18,21,20,2,12,24,23,1,16,4,28,27,7,8,3,25,11,6,17,13},
{23,32,4,25,11,31,21,18,28,27,6,14,15,13,12,24,2,30,8,7,29,17,16,1,26,3,9,10,20,19,5,22},
{24,17,26,3,31,11,20,19,27,28,5,15,14,12,13,23,22,8,30,29,7,32,1,16,4,25,10,9,21,18,6,2},
{25,18,6,31,13,12,2,27,7,29,15,16,1,24,23,3,8,9,10,17,32,19,26,4,5,11,20,21,22,28,14,30},
{26,30,31,5,15,14,32,9,21,20,12,24,23,1,16,4,18,28,27,2,22,8,3,25,11,6,7,29,17,10,13,19},
{27,12,8,29,17,32,1,23,3,25,10,20,21,19,18,28,4,5,6,11,31,13,22,2,30,7,14,15,16,24,9,26},
{28,13,30,7,32,17,16,24,25,3,9,21,20,18,19,27,26,6,5,31,11,12,2,22,8,29,15,14,1,23,10,4},
{29,23,10,32,19,18,4,25,11,31,21,22,2,28,27,7,6,14,15,13,12,24,30,8,9,17,16,1,26,3,20,5},
{30,5,32,9,21,20,12,14,1,16,18,28,27,2,22,8,23,3,25,4,26,6,7,29,17,10,11,31,13,15,19,24},
{31,27,15,12,24,23,8,29,17,32,1,26,4,3,25,11,10,20,21,19,18,28,5,6,14,13,22,2,30,7,16,9},
{32,25,21,18,28,27,6,31,13,12,2,30,8,7,29,17,15,16,1,24,23,3,9,10,20,19,26,4,5,11,22,14},
};
int g_G32_12[32][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,25,26,27,28,29,30,31,32},
{2,5,7,8,9,10,12,14,6,16,17,18,19,20,21,22,23,13,25,15,26,1,27,28,29,30,24,31,3,4,32,11},
{3,17,4,11,12,13,2,7,27,28,1,14,15,23,24,25,8,9,10,18,19,32,5,6,26,31,20,21,22,29,16,30},
{4,8,11,1,14,15,17,2,20,21,3,23,24,5,6,26,7,27,28,9,10,30,12,13,31,16,18,19,32,22,25,29},
{5,9,12,14,6,16,18,20,10,22,23,13,25,15,26,1,27,19,29,21,30,2,24,31,3,4,28,32,7,8,11,17},
{6,10,13,15,16,1,19,21,22,2,24,25,3,26,4,5,28,29,7,30,8,9,31,11,12,14,32,17,18,20,23,27},
{7,23,8,17,18,19,5,12,24,31,2,20,21,27,28,29,14,6,16,13,25,11,9,10,30,32,15,26,1,3,22,4},
{8,14,17,2,20,21,23,5,15,26,7,27,28,9,10,30,12,24,31,6,16,4,18,19,32,22,13,25,11,1,29,3},
{9,6,18,20,10,22,13,15,16,1,27,19,29,21,30,2,24,25,3,26,4,5,28,32,7,8,31,11,12,14,17,23},
{10,16,19,21,22,2,25,26,1,5,28,29,7,30,8,9,31,3,12,4,14,6,32,17,18,20,11,23,13,15,27,24},
{11,7,1,3,23,24,8,17,18,19,4,5,6,12,13,31,2,20,21,27,28,29,14,15,16,25,9,10,30,32,26,22},
{12,27,14,23,13,25,9,18,28,32,5,15,26,24,31,3,20,10,22,19,29,17,6,16,4,11,21,30,2,7,1,8},
{13,28,15,24,25,3,10,19,32,17,6,26,4,31,11,12,21,22,2,29,7,27,16,1,14,23,30,8,9,18,5,20},
{14,20,23,5,15,26,27,9,21,30,12,24,31,6,16,4,18,28,32,10,22,8,13,25,11,1,19,29,17,2,3,7},
{15,21,24,6,26,4,28,10,30,8,13,31,11,16,1,14,19,32,17,22,2,20,25,3,23,5,29,7,27,9,12,18},
{16,22,25,26,1,5,29,30,2,9,31,3,12,4,14,6,32,7,18,8,20,10,11,23,13,15,17,27,19,21,24,28},
{17,12,2,7,27,28,14,23,13,25,8,9,10,18,19,32,5,15,26,24,31,3,20,21,22,29,6,16,4,11,30,1},
{18,24,20,27,19,29,6,13,31,11,9,21,30,28,32,7,15,16,1,25,3,23,10,22,8,17,26,4,5,12,2,14},
{19,31,21,28,29,7,16,25,11,23,10,30,8,32,17,18,26,1,5,3,12,24,22,2,20,27,4,14,6,13,9,15},
{20,15,27,9,21,30,24,6,26,4,18,28,32,10,22,8,13,31,11,16,1,14,19,29,17,2,25,3,23,5,7,12},
{21,26,28,10,30,8,31,16,4,14,19,32,17,22,2,20,25,11,23,1,5,15,29,7,27,9,3,12,24,6,18,13},
{22,1,29,30,2,9,3,4,5,6,32,7,18,8,20,10,11,12,13,14,15,16,17,27,19,21,23,24,25,26,28,31},
{23,18,5,12,24,31,20,27,19,29,14,6,16,13,25,11,9,21,30,28,32,7,15,26,1,3,10,22,8,17,4,2},
{24,19,6,13,31,11,21,28,29,7,15,16,1,25,3,23,10,30,8,32,17,18,26,4,5,12,22,2,20,27,14,9},
{25,32,26,31,3,12,22,29,17,27,16,4,14,11,23,13,30,2,9,7,18,28,1,5,15,24,8,20,10,19,6,21},
{26,30,31,16,4,14,32,22,8,20,25,11,23,1,5,15,29,17,27,2,9,21,3,12,24,6,7,18,28,10,13,19},
{27,13,9,18,28,32,15,24,25,3,20,10,22,19,29,17,6,26,4,31,11,12,21,30,2,7,16,1,14,23,8,5},
{28,25,10,19,32,17,26,31,3,12,21,22,2,29,7,27,16,4,14,11,23,13,30,8,9,18,1,5,15,24,20,6},
{29,11,30,32,7,18,1,3,23,24,22,8,20,17,27,19,4,5,6,12,13,31,2,9,21,28,14,15,16,25,10,26},
{30,4,32,22,8,20,11,1,14,15,29,17,27,2,9,21,3,23,24,5,6,26,7,18,28,10,12,13,31,16,19,25},
{31,29,16,25,11,23,30,32,7,18,26,1,5,3,12,24,22,8,20,17,27,19,4,14,6,13,2,9,21,28,15,10},
{32,3,22,29,17,27,4,11,12,13,30,2,9,7,18,28,1,14,15,23,24,25,8,20,10,19,5,6,26,31,21,16},
};
int g_G32_13[32][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,25,26,27,28,29,30,31,32},
{2,5,7,8,9,10,12,14,1,16,17,18,19,20,21,22,23,3,25,4,26,6,27,28,29,30,11,31,13,15,32,24},
{3,17,4,11,12,13,10,19,27,28,6,14,15,23,24,25,21,22,2,29,7,32,16,1,26,31,30,8,9,18,5,20},
{4,21,11,6,14,15,28,2,30,8,13,23,24,16,1,26,7,32,17,9,10,20,25,3,31,5,18,19,27,22,12,29},
{5,9,12,14,1,16,18,20,2,22,23,3,25,4,26,6,27,7,29,8,30,10,11,31,13,15,17,32,19,21,24,28},
{6,10,13,15,16,1,19,21,22,2,24,25,3,26,4,5,28,29,7,30,8,9,31,11,12,14,32,17,18,20,23,27},
{7,23,8,17,18,19,16,25,11,31,10,20,21,27,28,29,26,6,5,13,12,24,22,2,30,32,15,14,1,3,9,4},
{8,26,17,10,20,21,31,5,15,14,19,27,28,22,2,30,12,24,23,1,16,4,29,7,32,9,3,25,11,6,18,13},
{9,1,18,20,2,22,3,4,5,6,27,7,29,8,30,10,11,12,13,14,15,16,17,32,19,21,23,24,25,26,28,31},
{10,16,19,21,22,2,25,26,6,5,28,29,7,30,8,9,31,13,12,15,14,1,32,17,18,20,24,23,3,4,27,11},
{11,7,6,13,23,24,8,17,18,19,15,16,1,25,3,31,10,20,21,27,28,29,26,4,5,12,22,2,30,32,14,9},
{12,27,14,23,3,25,22,29,17,32,16,4,26,11,31,13,30,10,9,19,18,28,6,5,15,24,21,20,2,7,1,8},
{13,28,15,24,25,3,2,7,32,17,1,26,4,31,11,12,8,9,10,18,19,27,5,6,14,23,20,21,22,29,16,30},
{14,30,23,16,4,26,32,9,21,20,25,11,31,6,5,15,18,28,27,2,22,8,13,12,24,1,7,29,17,10,3,19},
{15,8,24,1,26,4,17,10,20,21,3,31,11,5,6,14,19,27,28,22,2,30,12,13,23,16,29,7,32,9,25,18},
{16,22,25,26,6,5,29,30,10,9,31,13,12,15,14,1,32,19,18,21,20,2,24,23,3,4,28,27,7,8,11,17},
{17,12,10,19,27,28,14,23,3,25,21,22,2,29,7,32,16,4,26,11,31,13,30,8,9,18,6,5,15,24,20,1},
{18,11,20,27,7,29,6,13,23,24,22,8,30,17,32,19,15,16,1,25,3,31,10,9,21,28,26,4,5,12,2,14},
{19,31,21,28,29,7,5,12,24,23,2,30,8,32,17,18,14,1,16,3,25,11,9,10,20,27,4,26,6,13,22,15},
{20,15,27,22,8,30,24,1,26,4,29,17,32,10,9,21,3,31,11,5,6,14,19,18,28,2,12,13,23,16,7,25},
{21,14,28,2,30,8,23,16,4,26,7,32,17,9,10,20,25,11,31,6,5,15,18,19,27,22,13,12,24,1,29,3},
{22,6,29,30,10,9,13,15,16,1,32,19,18,21,20,2,24,25,3,26,4,5,28,27,7,8,31,11,12,14,17,23},
{23,18,16,25,11,31,20,27,7,29,26,6,5,13,12,24,22,8,30,17,32,19,15,14,1,3,10,9,21,28,4,2},
{24,19,1,3,31,11,21,28,29,7,4,5,6,12,13,23,2,30,8,32,17,18,14,15,16,25,9,10,20,27,26,22},
{25,32,26,31,13,12,9,18,28,27,5,15,14,24,23,3,20,2,22,7,29,17,1,16,4,11,8,30,10,19,6,21},
{26,20,31,5,15,14,27,22,8,30,12,24,23,1,16,4,29,17,32,10,9,21,3,25,11,6,19,18,28,2,13,7},
{27,3,22,29,17,32,4,11,12,13,30,10,9,19,18,28,6,14,15,23,24,25,21,20,2,7,16,1,26,31,8,5},
{28,25,2,7,32,17,26,31,13,12,8,9,10,18,19,27,5,15,14,24,23,3,20,21,22,29,1,16,4,11,30,6},
{29,24,30,32,19,18,1,3,31,11,9,21,20,28,27,7,4,5,6,12,13,23,2,22,8,17,14,15,16,25,10,26},
{30,4,32,9,21,20,11,6,14,15,18,28,27,2,22,8,13,23,24,16,1,26,7,29,17,10,25,3,31,5,19,12},
{31,29,5,12,24,23,30,32,19,18,14,1,16,3,25,11,9,21,20,28,27,7,4,26,6,13,2,22,8,17,15,10},
{32,13,9,18,28,27,15,24,25,3,20,2,22,7,29,17,1,26,4,31,11,12,8,30,10,19,5,6,14,23,21,16},
};
int g_G32_14[32][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,25,26,27,28,29,30,31,32},
{2,5,7,8,9,10,12,14,1,16,17,18,19,20,21,22,23,3,25,4,26,6,27,28,29,30,11,31,13,15,32,24},
{3,17,15,11,12,13,2,19,27,28,1,26,4,23,24,25,8,9,10,29,7,32,5,6,14,31,20,21,22,18,16,30},
{4,21,11,6,14,15,28,2,30,8,13,23,24,16,1,26,7,32,17,9,10,20,25,3,31,5,18,19,27,22,12,29},
{5,9,12,14,1,16,18,20,2,22,23,3,25,4,26,6,27,7,29,8,30,10,11,31,13,15,17,32,19,21,24,28},
{6,10,13,15,16,1,19,21,22,2,24,25,3,26,4,5,28,29,7,30,8,9,31,11,12,14,32,17,18,20,23,27},
{7,23,21,17,18,19,5,25,11,31,2,30,8,27,28,29,14,1,16,13,12,24,9,10,20,32,4,26,6,3,22,15},
{8,26,17,10,20,21,31,5,15,14,19,27,28,22,2,30,12,24,23,1,16,4,29,7,32,9,3,25,11,6,18,13},
{9,1,18,20,2,22,3,4,5,6,27,7,29,8,30,10,11,12,13,14,15,16,17,32,19,21,23,24,25,26,28,31},
{10,16,19,21,22,2,25,26,6,5,28,29,7,30,8,9,31,13,12,15,14,1,32,17,18,20,24,23,3,4,27,11},
{11,7,1,13,23,24,21,17,18,19,4,5,6,25,3,31,2,30,8,27,28,29,14,15,16,12,9,10,20,32,26,22},
{12,27,26,23,3,25,9,29,17,32,5,15,14,11,31,13,20,2,22,19,18,28,1,16,4,24,8,30,10,7,6,21},
{13,28,4,24,25,3,10,7,32,17,6,14,15,31,11,12,21,22,2,18,19,27,16,1,26,23,30,8,9,29,5,20},
{14,30,23,16,4,26,32,9,21,20,25,11,31,6,5,15,18,28,27,2,22,8,13,12,24,1,7,29,17,10,3,19},
{15,8,24,1,26,4,17,10,20,21,3,31,11,5,6,14,19,27,28,22,2,30,12,13,23,16,29,7,32,9,25,18},
{16,22,25,26,6,5,29,30,10,9,31,13,12,15,14,1,32,19,18,21,20,2,24,23,3,4,28,27,7,8,11,17},
{17,12,2,19,27,28,26,23,3,25,8,9,10,29,7,32,5,15,14,11,31,13,20,21,22,18,1,16,4,24,30,6},
{18,11,30,27,7,29,1,13,23,24,9,21,20,17,32,19,4,5,6,25,3,31,2,22,8,28,14,15,16,12,10,26},
{19,31,8,28,29,7,16,12,24,23,10,20,21,32,17,18,26,6,5,3,25,11,22,2,30,27,15,14,1,13,9,4},
{20,15,27,22,8,30,24,1,26,4,29,17,32,10,9,21,3,31,11,5,6,14,19,18,28,2,12,13,23,16,7,25},
{21,14,28,2,30,8,23,16,4,26,7,32,17,9,10,20,25,11,31,6,5,15,18,19,27,22,13,12,24,1,29,3},
{22,6,29,30,10,9,13,15,16,1,32,19,18,21,20,2,24,25,3,26,4,5,28,27,7,8,31,11,12,14,17,23},
{23,18,5,25,11,31,30,27,7,29,14,1,16,13,12,24,9,21,20,17,32,19,4,26,6,3,2,22,8,28,15,10},
{24,19,6,3,31,11,8,28,29,7,15,16,1,12,13,23,10,20,21,32,17,18,26,4,5,25,22,2,30,27,14,9},
{25,32,14,31,13,12,22,18,28,27,16,4,26,24,23,3,30,10,9,7,29,17,6,5,15,11,21,20,2,19,1,8},
{26,20,31,5,15,14,27,22,8,30,12,24,23,1,16,4,29,17,32,10,9,21,3,25,11,6,19,18,28,2,13,7},
{27,3,9,29,17,32,15,11,12,13,20,2,22,19,18,28,1,26,4,23,24,25,8,30,10,7,5,6,14,31,21,16},
{28,25,10,7,32,17,14,31,13,12,21,22,2,18,19,27,16,4,26,24,23,3,30,8,9,29,6,5,15,11,20,1},
{29,24,20,32,19,18,6,3,31,11,22,8,30,28,27,7,15,16,1,12,13,23,10,9,21,17,26,4,5,25,2,14},
{30,4,32,9,21,20,11,6,14,15,18,28,27,2,22,8,13,23,24,16,1,26,7,29,17,10,25,3,31,5,19,12},
{31,29,16,12,24,23,20,32,19,18,26,6,5,3,25,11,22,8,30,28,27,7,15,14,1,13,10,9,21,17,4,2},
{32,13,22,18,28,27,4,24,25,3,30,10,9,7,29,17,6,14,15,31,11,12,21,20,2,19,16,1,26,23,8,5},
};
int g_G32_30[32][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,25,26,27,28,29,30,31,32},
{2,1,7,8,9,10,3,4,5,6,17,18,19,20,21,22,11,12,13,14,15,16,27,28,29,30,23,24,25,26,32,31},
{3,18,1,11,12,13,9,27,7,29,4,5,6,23,24,25,20,2,22,17,32,19,14,15,16,31,8,30,10,28,26,21},
{4,21,11,5,14,15,28,22,30,8,12,23,24,1,16,26,29,32,17,10,9,20,3,25,31,6,19,18,27,2,13,7},
{5,9,12,14,1,16,18,20,2,22,23,3,25,4,26,6,27,7,29,8,30,10,11,31,13,15,17,32,19,21,24,28},
{6,10,13,15,16,1,19,21,22,2,24,25,3,26,4,5,28,29,7,30,8,9,31,11,12,14,32,17,18,20,23,27},
{7,12,2,17,18,19,5,23,3,25,8,9,10,27,28,29,14,1,16,11,31,13,20,21,22,32,4,26,6,24,30,15},
{8,15,17,9,20,21,24,16,26,4,18,27,28,2,22,30,25,31,11,6,5,14,7,29,32,10,13,12,23,1,19,3},
{9,5,18,20,2,22,12,14,1,16,27,7,29,8,30,10,23,3,25,4,26,6,17,32,19,21,11,31,13,15,28,24},
{10,6,19,21,22,2,13,15,16,1,28,29,7,30,8,9,24,25,3,26,4,5,32,17,18,20,31,11,12,14,27,23},
{11,32,4,12,23,24,30,19,28,27,5,14,15,3,25,31,10,21,20,29,7,17,1,16,26,13,22,2,8,18,6,9},
{12,7,5,23,3,25,2,17,18,19,14,1,16,11,31,13,8,9,10,27,28,29,4,26,6,24,20,21,22,32,15,30},
{13,29,6,24,25,3,22,32,19,18,15,16,1,31,11,12,30,10,9,28,27,7,26,4,5,23,21,20,2,17,14,8},
{14,30,23,1,4,26,32,10,21,20,3,11,31,5,6,15,19,28,27,22,2,8,12,13,24,16,29,7,17,9,25,18},
{15,8,24,16,26,4,17,9,20,21,25,31,11,6,5,14,18,27,28,2,22,30,13,12,23,1,7,29,32,10,3,19},
{16,22,25,26,6,5,29,30,10,9,31,13,12,15,14,1,32,19,18,21,20,2,24,23,3,4,28,27,7,8,11,17},
{17,31,8,18,27,28,26,13,24,23,9,20,21,7,29,32,6,15,14,25,3,11,2,22,30,19,16,1,4,12,10,5},
{18,3,9,27,7,29,1,11,12,13,20,2,22,17,32,19,4,5,6,23,24,25,8,30,10,28,14,15,16,31,21,26},
{19,25,10,28,29,7,16,31,13,12,21,22,2,32,17,18,26,6,5,24,23,3,30,8,9,27,15,14,1,11,20,4},
{20,26,27,2,8,30,31,6,15,14,7,17,32,9,10,21,13,24,23,16,1,4,18,19,28,22,25,3,11,5,29,12},
{21,4,28,22,30,8,11,5,14,15,29,32,17,10,9,20,12,23,24,1,16,26,19,18,27,2,3,25,31,6,7,13},
{22,16,29,30,10,9,25,26,6,5,32,19,18,21,20,2,31,13,12,15,14,1,28,27,7,8,24,23,3,4,17,11},
{23,28,14,3,11,31,21,29,32,17,1,4,26,12,13,24,22,30,8,19,18,27,5,6,15,25,10,9,20,7,16,2},
{24,27,15,25,31,11,20,7,17,32,16,26,4,13,12,23,2,8,30,18,19,28,6,5,14,3,9,10,21,29,1,22},
{25,19,16,31,13,12,10,28,29,7,26,6,5,24,23,3,21,22,2,32,17,18,15,14,1,11,30,8,9,27,4,20},
{26,20,31,6,15,14,27,2,8,30,13,24,23,16,1,4,7,17,32,9,10,21,25,3,11,5,18,19,28,22,12,29},
{27,24,20,7,17,32,15,25,31,11,2,8,30,18,19,28,16,26,4,13,12,23,9,10,21,29,6,5,14,3,22,1},
{28,23,21,29,32,17,14,3,11,31,22,30,8,19,18,27,1,4,26,12,13,24,10,9,20,7,5,6,15,25,2,16},
{29,13,22,32,19,18,6,24,25,3,30,10,9,28,27,7,15,16,1,31,11,12,21,20,2,17,26,4,5,23,8,14},
{30,14,32,10,21,20,23,1,4,26,19,28,27,22,2,8,3,11,31,5,6,15,29,7,17,9,12,13,24,16,18,25},
{31,17,26,13,24,23,8,18,27,28,6,15,14,25,3,11,9,20,21,7,29,32,16,1,4,12,2,22,30,19,5,10},
{32,11,30,19,28,27,4,12,23,24,10,21,20,29,7,17,5,14,15,3,25,31,22,2,8,18,1,16,26,13,9,6},
};
int g_G32_31[32][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,25,26,27,28,29,30,31,32},
{2,1,7,8,9,10,3,4,5,6,17,18,19,20,21,22,11,12,13,14,15,16,27,28,29,30,23,24,25,26,32,31},
{3,18,6,11,12,13,22,27,7,29,15,16,1,23,24,25,30,10,9,17,32,19,26,4,5,31,21,20,2,28,14,8},
{4,21,11,5,14,15,28,22,30,8,12,23,24,1,16,26,29,32,17,10,9,20,3,25,31,6,19,18,27,2,13,7},
{5,9,12,14,1,16,18,20,2,22,23,3,25,4,26,6,27,7,29,8,30,10,11,31,13,15,17,32,19,21,24,28},
{6,10,13,15,16,1,19,21,22,2,24,25,3,26,4,5,28,29,7,30,8,9,31,11,12,14,32,17,18,20,23,27},
{7,12,10,17,18,19,16,23,3,25,21,22,2,27,28,29,26,6,5,11,31,13,30,8,9,32,15,14,1,24,20,4},
{8,15,17,9,20,21,24,16,26,4,18,27,28,2,22,30,25,31,11,6,5,14,7,29,32,10,13,12,23,1,19,3},
{9,5,18,20,2,22,12,14,1,16,27,7,29,8,30,10,23,3,25,4,26,6,17,32,19,21,11,31,13,15,28,24},
{10,6,19,21,22,2,13,15,16,1,28,29,7,30,8,9,24,25,3,26,4,5,32,17,18,20,31,11,12,14,27,23},
{11,32,15,12,23,24,20,19,28,27,16,26,4,3,25,31,2,8,30,29,7,17,6,5,14,13,9,10,21,18,1,22},
{12,7,16,23,3,25,10,17,18,19,26,6,5,11,31,13,21,22,2,27,28,29,15,14,1,24,30,8,9,32,4,20},
{13,29,1,24,25,3,9,32,19,18,4,5,6,31,11,12,20,2,22,28,27,7,14,15,16,23,8,30,10,17,26,21},
{14,30,23,1,4,26,32,10,21,20,3,11,31,5,6,15,19,28,27,22,2,8,12,13,24,16,29,7,17,9,25,18},
{15,8,24,16,26,4,17,9,20,21,25,31,11,6,5,14,18,27,28,2,22,30,13,12,23,1,7,29,32,10,3,19},
{16,22,25,26,6,5,29,30,10,9,31,13,12,15,14,1,32,19,18,21,20,2,24,23,3,4,28,27,7,8,11,17},
{17,31,21,18,27,28,14,13,24,23,22,30,8,7,29,32,1,4,26,25,3,11,10,9,20,19,5,6,15,12,2,16},
{18,3,22,27,7,29,6,11,12,13,30,10,9,17,32,19,15,16,1,23,24,25,21,20,2,28,26,4,5,31,8,14},
{19,25,2,28,29,7,5,31,13,12,8,9,10,32,17,18,14,1,16,24,23,3,20,21,22,27,4,26,6,11,30,15},
{20,26,27,2,8,30,31,6,15,14,7,17,32,9,10,21,13,24,23,16,1,4,18,19,28,22,25,3,11,5,29,12},
{21,4,28,22,30,8,11,5,14,15,29,32,17,10,9,20,12,23,24,1,16,26,19,18,27,2,3,25,31,6,7,13},
{22,16,29,30,10,9,25,26,6,5,32,19,18,21,20,2,31,13,12,15,14,1,28,27,7,8,24,23,3,4,17,11},
{23,28,26,3,11,31,8,29,32,17,6,15,14,12,13,24,9,20,21,19,18,27,16,1,4,25,2,22,30,7,5,10},
{24,27,4,25,31,11,30,7,17,32,5,14,15,13,12,23,10,21,20,18,19,28,1,16,26,3,22,2,8,29,6,9},
{25,19,5,31,13,12,2,28,29,7,14,1,16,24,23,3,8,9,10,32,17,18,4,26,6,11,20,21,22,27,15,30},
{26,20,31,6,15,14,27,2,8,30,13,24,23,16,1,4,7,17,32,9,10,21,25,3,11,5,18,19,28,22,12,29},
{27,24,30,7,17,32,4,25,31,11,10,21,20,18,19,28,5,14,15,13,12,23,22,2,8,29,1,16,26,3,9,6},
{28,23,8,29,32,17,26,3,11,31,9,20,21,19,18,27,6,15,14,12,13,24,2,22,30,7,16,1,4,25,10,5},
{29,13,9,32,19,18,1,24,25,3,20,2,22,28,27,7,4,5,6,31,11,12,8,30,10,17,14,15,16,23,21,26},
{30,14,32,10,21,20,23,1,4,26,19,28,27,22,2,8,3,11,31,5,6,15,29,7,17,9,12,13,24,16,18,25},
{31,17,14,13,24,23,21,18,27,28,1,4,26,25,3,11,22,30,8,7,29,32,5,6,15,12,10,9,20,19,16,2},
{32,11,20,19,28,27,15,12,23,24,2,8,30,29,7,17,16,26,4,3,25,31,9,10,21,18,6,5,14,13,22,1},
};
int Ord(IGroup* g,int i){
vector<int> S1=Order(g,i);
int ord=S1.size();
return ord;
}
vector<tuple<int,int,int,int> > doN3Vec(vector<tuple<int,int,int> >& v){
vector<tuple<int,int,int,int> > ret;
int n=v.size();
for(int i=0;i<n;i++){
tuple<int,int,int> vi=v[i];
vector<tuple<int,int,int,int> >::const_iterator it=std::find_if(ret.begin(),ret.end(),[vi](tuple<int,int,int,int>& obj)->bool{if(get<0>(obj)==get<0>(vi) && get<1>(obj)==get<1>(vi) && get<2>(obj)==get<2>(vi))return true;return false;});
if(it==ret.end()){
ret.push_back(make_tuple(get<0>(vi),get<1>(vi),get<2>(vi),1));
}else{
int cnt=get<3>(*it);
ret[it-ret.begin()]=make_tuple(get<0>(vi),get<1>(vi),get<2>(vi),cnt+1);
}
}
return ret;
}
string calcN3(IGroup* g){
int IdGroup(IGroup* g);
int n=g->size();
vector<tuple<int,int,int> > v;
for(int i=0;i<n;i++){
#if 1
int i2=g->mul(i,i);
int i3=g->mul(i2,i);
int I=Ord(g,i);
int J=Ord(g,i2);
int IJ=Ord(g,i3);
v.push_back(make_tuple(I,J,IJ));
#else
for(int j=0;j<n;j++){
int ij=g->mul(i,j);
int I=Ord(g,i);
int J=Ord(g,j);
int IJ=Ord(g,ij);
v.push_back(make_tuple(I,J,IJ));
}
#endif
}
std::sort(v.begin(),v.end());
vector<tuple<int,int,int,int> > v1=doN3Vec(v);
string str="[";
for(int i=0;i<v1.size();i++)
{
char sz[1024]={0};
sprintf(sz,"[%d,%d,%d,%d],",get<0>(v1[i]),get<1>(v1[i]),get<2>(v1[i]),get<3>(v1[i]));
str+=sz;
}
if(str.size()>2)
{
str=str.substr(0,str.size()-1);
}
str+="]";
return str;
}
string calcC2(IGroup* g){
int IdGroup(IGroup* g);
int n=g->size();
vector<pair<int,int> > v;
for(int i=0;i<n;i++){
int i2=g->mul(i,i);
int i3=g->mul(i2,i);
int I1=IsConjugacy(g,i,i2);
int I2=IsConjugacy(g,i,i3);
v.push_back(make_pair(I1,I2));
}
std::sort(v.begin(),v.end());
vector<tuple<int,int,int> > v1=doN2Vec(v);
string str="[";
for(int i=0;i<v1.size();i++){
char sz[200]={0};
sprintf(sz,"[%d,%d,%d],",get<0>(v1[i]),get<1>(v1[i]),get<2>(v1[i]));
str+=sz;
}
if(str.size()>2){
str=str.substr(0,str.size()-1);
}
str+="]";
return str;
}
vector<pair<int,int> > doN1Vec(vector<int>& v){
vector<pair<int,int> > ret;
int n=v.size();
for(int i=0;i<n;i++){
int vi=v[i];
vector<pair<int,int> >::const_iterator it=std::find_if(ret.begin(),ret.end(),[vi](pair<int,int>& obj)->bool{if(vi==obj.first)return true;return false;});
if(it==ret.end()){
ret.push_back(make_pair(vi,1));
}else{
int cnt=(*it).second;
ret[it-ret.begin()]=make_pair(vi,cnt+1);
}
}
return ret;
}
string calcC1(IGroup* g){
int IdGroup(IGroup* g);
int n=g->size();
vector<int> v;
for(int i=0;i<n;i++){
int i2=g->mul(i,i);
int i3=g->mul(i2,i);
int I1=IsConjugacy(g,i,i3);
v.push_back(I1);
}
std::sort(v.begin(),v.end());
vector<pair<int,int> > v1=doN1Vec(v);
string str="[";
for(int i=0;i<v1.size();i++){
char sz[200]={0};
sprintf(sz,"[%d,%d],",v1[i].first,v1[i].second);
str+=sz;
}
if(str.size()>2){
str=str.substr(0,str.size()-1);
}
str+="]";
return str;
}
int calk(vector<vector<int> >& vv,int i){
int k=vv.size();
for(int j=0;j<k;j++)
{
int kj=vv[j].size();
vector<int>::iterator p=std::find(vv[j].begin(),vv[j].end(),i);
if(p!=vv[j].end()){
return kj;
}
}
return 0;
}
string calcNk(IGroup* g){
int IdGroup(IGroup* g);
int n=g->size();
vector<pair<int,int> > v;
vector<vector<int >> vv=ConjugacyClasses(g);
for(int i=0;i<n;i++){
int I1=Ord(g,i);
int I2=calk(vv,i);
v.push_back(make_pair(I1,I2));
}
std::sort(v.begin(),v.end());
vector<tuple<int,int,int> > v1=doN2Vec(v);
string str="[";
for(int i=0;i<v1.size();i++){
char sz[200]={0};
sprintf(sz,"[%d,%d,%d],",get<0>(v1[i]),get<1>(v1[i]),get<2>(v1[i]));
str+=sz;
}
if(str.size()>2){
str=str.substr(0,str.size()-1);
}
str+="]";
return str;
}
int main()
{
int *g_G32Mul[]={&g_G32_4[0][0],&g_G32_12[0][0],&g_G32_13[0][0],&g_G32_14[0][0],&g_G32_30[0][0],&g_G32_31[0][0]};
int cnt=sizeof(g_G32Mul)/sizeof(g_G32Mul[0]);
for(int i=0;i<cnt;i++)
{
FiniteGroup *g=new FiniteGroup(32,g_G32Mul[i],1);
g->m_flag=0;
string strC1=calcC1(g);
string strC2=calcC2(g);
string strNk=calcNk(g);
int ID=IdGroup(g);
printf("C1(GAP[%d,%d])=%s\n",g->size(),ID,strC1.c_str());
printf("C2(GAP[%d,%d])=%s\n",g->size(),ID,strC2.c_str());
printf("Nk(GAP[%d,%d])=%s\n",g->size(),ID,strNk.c_str());
delete g;
g=NULL;
}
system("pause");
return 0;
}