G24

D:\MathTool\gaptool>G24
GAP[24,1]:
N0=1,1,2,2,2,12,4,0
S2=0,1,3,5,11,66,46,144
kKEZDCANS=12,[4,4,4,0,0,0,0,0],24,4,3,0,0,0,1
I1I2=[[1,1,1],[2,1,1],[3,1,2],[4,1,2],[6,2,2],[8,1,12],[12,2,4]],[[2,1,1],[3,1,3],[4,1,5],[6,2,11],[8,1,66],[12,2,46]]
Center(GAP[24,1])=GAP[4,1]
DerivedSubgroup(GAP[24,1])=GAP[3,1]
PZ(GAP[24,1])=GAP[6,1]
PD(GAP[24,1])=GAP[8,1]

GAP[24,2]:
N0=1,1,2,2,2,4,4,8
S2=0,1,3,5,11,22,46,188
kKEZDCANS=24,[24,0,0,0,0,0,0,0],24,24,1,1,1,1,1
I1I2=[[1,1,1],[2,1,1],[3,1,2],[4,1,2],[6,2,2],[8,1,4],[12,2,4]],[[2,1,1],[3,1,3],[4,1,5],[6,2,11],[8,1,22],[12,2,46]]
Center(GAP[24,2])=GAP[24,2]
DerivedSubgroup(GAP[24,2])=GAP[1,1]
PZ(GAP[24,2])=GAP[1,1]
PD(GAP[24,2])=GAP[24,2]

GAP[24,3]:
N0=1,1,8,6,8,0,0,0
S2=0,1,12,15,44,12,0,192
kKEZDCANS=7,[2,0,0,4,1,0,0,0],12,2,8,0,0,0,1
I1I2=[[1,1,1],[2,1,1],[3,1,8],[4,1,6],[6,2,8]],[[2,1,1],[3,1,12],[4,1,15],[6,2,44],[8,4,12]]
Center(GAP[24,3])=GAP[2,1]
DerivedSubgroup(GAP[24,3])=GAP[8,4]
PZ(GAP[24,3])=GAP[12,3]
PD(GAP[24,3])=GAP[3,1]

GAP[24,4]:
N0=1,1,2,14,2,0,4,0
S2=0,1,3,35,11,36,118,72
kKEZDCANS=9,[2,5,0,0,2,0,0,0],12,2,6,0,0,0,1
I1I2=[[1,1,1],[2,1,1],[3,1,2],[4,1,14],[6,2,2],[12,2,4]],[[2,1,1],[3,1,3],[4,1,35],[6,2,11],[8,4,36],[12,1,72],[12,2,46]]
Center(GAP[24,4])=GAP[2,1]
DerivedSubgroup(GAP[24,4])=GAP[6,2]
PZ(GAP[24,4])=GAP[12,4]
PD(GAP[24,4])=GAP[4,2]

GAP[24,5]:
N0=1,7,2,8,2,0,4,0
S2=0,7,3,29,29,36,100,72
kKEZDCANS=12,[4,4,4,0,0,0,0,0],12,4,3,0,0,0,1
I1I2=[[1,1,1],[2,1,7],[3,1,2],[4,1,8],[6,2,2],[12,2,4]],[[2,1,7],[3,1,3],[4,1,20],[4,2,9],[6,1,18],[6,2,11],[8,2,36],[12,1,36],[12,2,46],[12,4,18]]
Center(GAP[24,5])=GAP[4,1]
DerivedSubgroup(GAP[24,5])=GAP[3,1]
PZ(GAP[24,5])=GAP[6,1]
PD(GAP[24,5])=GAP[8,2]

GAP[24,6]:
N0=1,13,2,2,2,0,4,0
S2=0,13,3,23,47,36,82,72
kKEZDCANS=9,[2,5,0,0,2,0,0,0],12,2,6,0,0,0,1
I1I2=[[1,1,1],[2,1,13],[3,1,2],[4,1,2],[6,2,2],[12,2,4]],[[2,1,13],[3,1,3],[4,1,5],[4,2,18],[6,1,36],[6,2,11],[8,3,36],[12,2,46],[12,4,36]]
Center(GAP[24,6])=GAP[2,1]
DerivedSubgroup(GAP[24,6])=GAP[6,2]
PZ(GAP[24,6])=GAP[12,4]
PD(GAP[24,6])=GAP[4,2]

GAP[24,7]:
N0=1,3,2,12,6,0,0,0
S2=0,3,3,33,33,36,96,72
kKEZDCANS=12,[4,4,4,0,0,0,0,0],12,4,3,0,0,0,1
I1I2=[[1,1,1],[2,1,3],[3,1,2],[4,1,12],[6,2,6]],[[2,1,3],[3,1,3],[4,1,30],[4,2,3],[6,2,33],[8,2,36],[12,1,72],[12,5,24]]
Center(GAP[24,7])=GAP[4,2]
DerivedSubgroup(GAP[24,7])=GAP[3,1]
PZ(GAP[24,7])=GAP[6,1]
PD(GAP[24,7])=GAP[8,2]

GAP[24,8]:
N0=1,9,2,6,6,0,0,0
S2=0,9,3,27,51,36,78,72
kKEZDCANS=9,[2,5,0,0,2,0,0,0],12,2,6,0,0,0,1
I1I2=[[1,1,1],[2,1,9],[3,1,2],[4,1,6],[6,2,6]],[[2,1,9],[3,1,3],[4,1,15],[4,2,12],[6,1,18],[6,2,33],[8,3,36],[12,1,36],[12,4,18],[12,5,24]]
Center(GAP[24,8])=GAP[2,1]
DerivedSubgroup(GAP[24,8])=GAP[6,2]
PZ(GAP[24,8])=GAP[12,4]
PD(GAP[24,8])=GAP[4,2]

GAP[24,9]:
N0=1,3,2,4,6,0,8,0
S2=0,3,3,13,33,12,116,96
kKEZDCANS=24,[24,0,0,0,0,0,0,0],12,24,1,0,1,1,1
I1I2=[[1,1,1],[2,1,3],[3,1,2],[4,1,4],[6,2,6],[12,2,8]],[[2,1,3],[3,1,3],[4,1,10],[4,2,3],[6,2,33],[8,2,12],[12,2,92],[12,5,24]]
Center(GAP[24,9])=GAP[24,9]
DerivedSubgroup(GAP[24,9])=GAP[1,1]
PZ(GAP[24,9])=GAP[1,1]
PD(GAP[24,9])=GAP[24,9]

GAP[24,10]:
N0=1,5,2,2,10,0,4,0
S2=0,5,3,11,55,12,94,96
kKEZDCANS=15,[6,9,0,0,0,0,0,0],12,6,2,0,0,1,1
I1I2=[[1,1,1],[2,1,5],[3,1,2],[4,1,2],[6,2,10],[12,2,4]],[[2,1,5],[3,1,3],[4,1,5],[4,2,6],[6,2,55],[8,3,12],[12,2,46],[12,5,48]]
Center(GAP[24,10])=GAP[6,2]
DerivedSubgroup(GAP[24,10])=GAP[2,1]
PZ(GAP[24,10])=GAP[4,2]
PD(GAP[24,10])=GAP[12,5]

GAP[24,11]:
N0=1,1,2,6,2,0,12,0
S2=0,1,3,15,11,12,138,96
kKEZDCANS=15,[6,9,0,0,0,0,0,0],12,6,2,0,0,1,1
I1I2=[[1,1,1],[2,1,1],[3,1,2],[4,1,6],[6,2,2],[12,2,12]],[[2,1,1],[3,1,3],[4,1,15],[6,2,11],[8,4,12],[12,2,138]]
Center(GAP[24,11])=GAP[6,2]
DerivedSubgroup(GAP[24,11])=GAP[2,1]
PZ(GAP[24,11])=GAP[4,2]
PD(GAP[24,11])=GAP[12,5]

GAP[24,12]:
N0=1,9,8,6,0,0,0,0
S2=0,9,12,27,36,36,48,108
kKEZDCANS=5,[1,0,1,0,2,1,0,0],12,1,12,0,0,0,1
I1I2=[[1,1,1],[2,1,9],[3,1,8],[4,1,6]],[[2,1,9],[3,1,12],[4,1,15],[4,2,12],[6,1,36],[8,3,36],[12,3,48]]
Center(GAP[24,12])=GAP[1,1]
DerivedSubgroup(GAP[24,12])=GAP[12,3]
PZ(GAP[24,12])=GAP[24,12]
PD(GAP[24,12])=GAP[2,1]

GAP[24,13]:
N0=1,7,8,0,8,0,0,0
S2=0,7,12,21,44,0,48,144
kKEZDCANS=8,[2,0,2,4,0,0,0,0],6,2,4,0,0,0,1
I1I2=[[1,1,1],[2,1,7],[3,1,8],[6,2,8]],[[2,1,7],[3,1,12],[4,2,21],[6,2,44],[12,3,48]]
Center(GAP[24,13])=GAP[2,1]
DerivedSubgroup(GAP[24,13])=GAP[4,2]
PZ(GAP[24,13])=GAP[12,3]
PD(GAP[24,13])=GAP[6,2]

GAP[24,14]:
N0=1,15,2,0,6,0,0,0
S2=0,15,3,57,69,0,132,0
kKEZDCANS=12,[4,4,4,0,0,0,0,0],6,4,3,0,0,0,1
I1I2=[[1,1,1],[2,1,15],[3,1,2],[6,2,6]],[[2,1,15],[3,1,3],[4,2,57],[6,1,36],[6,2,33],[12,4,108],[12,5,24]]
Center(GAP[24,14])=GAP[4,2]
DerivedSubgroup(GAP[24,14])=GAP[3,1]
PZ(GAP[24,14])=GAP[6,1]
PD(GAP[24,14])=GAP[8,5]

GAP[24,15]:
N0=1,7,2,0,14,0,0,0
S2=0,7,3,21,77,0,168,0
kKEZDCANS=24,[24,0,0,0,0,0,0,0],6,24,1,0,1,1,1
I1I2=[[1,1,1],[2,1,7],[3,1,2],[6,2,14]],[[2,1,7],[3,1,3],[4,2,21],[6,2,77],[12,5,168]]
Center(GAP[24,15])=GAP[24,15]
DerivedSubgroup(GAP[24,15])=GAP[1,1]
PZ(GAP[24,15])=GAP[1,1]
PD(GAP[24,15])=GAP[24,15]

#include "FiniteGroup.h"
#include "quotientGroup.h"
#include <fstream>
#include <complex>
using namespace std;

IGroup* newG24(int i){
    //int IDs[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
    int IDs[]={4,1,5,6,7,8,9,10,2,11,12,13,14,15,3};
    int cnt=sizeof(IDs)/sizeof(IDs[0]);
    if(i<=0||i>cnt)
        return NULL;
    
    int iElem;
    int sum=0;
    char sz[40]={0};
    sprintf(sz,"G24_%d.txt",IDs[i-1]);
    ifstream fin(sz);
    int *g_G24Mul=new int[576];
    while( !fin.eof() && sum<24*24) {
        fin >> iElem;
        sum++;
        int i=(sum-1)/24;
        int j=(sum-1)%24;
        *(g_G24Mul+i*24+j)=iElem-1;
    }
    fin.close();
    
    FiniteGroup *g=new FiniteGroup(24,g_G24Mul,0);
    g->m_flag=1;
    return g;
}

void print(IGroup* g){
    int ID=IdGroup(g);
    string N0=calcN0(g);   
    string S2=calcS2(g);
    string kKEZDCANS=calckKEZDCANS(g);
    printf("GAP[%d,%d]:\n",g->size(),ID); 
    printf("N0=%s\n",N0.c_str());  
    printf("S2=%s\n",S2.c_str());
    printf("kKEZDCANS=%s\n",kKEZDCANS.c_str());
    string I1=calcI1(g);
    string I2=calcI2(g);
    printf("I1I2=%s,%s\n",I1.c_str(),I2.c_str());

    vector<int> z=CenterOfG(g);
    vector<int> d=commutatorOfG(g);    
    Subgroup Z(g,z);
    Subgroup D(g,d);
    int ZID=IdGroup(&Z);
    int DID=IdGroup(&D);    
    printf("Center(GAP[%d,%d])=GAP[%d,%d]\n",g->size(),ID,Z.size(),ZID);    
    printf("DerivedSubgroup(GAP[%d,%d])=GAP[%d,%d]\n",g->size(),ID,D.size(),DID);
    
    quotientGroup PZ(g,z);
    quotientGroup PD(g,d);
    int PZID=IdGroup(&PZ);
    int PDID=IdGroup(&PD);
    printf("PZ(GAP[%d,%d])=GAP[%d,%d]\n",g->size(),ID,PZ.size(),PZID);    
    printf("PD(GAP[%d,%d])=GAP[%d,%d]\n",g->size(),ID,PD.size(),PDID);    
    printf("\n");
}

int main(int argc, char* argv[])
{
    for(int i=1;i<=15;i++){
        IGroup* g=newG24(i);
        if(g){
            int ID=IdGroup(g);
            print(g);
            delete g;
            g=NULL;
        }
    }
    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章