有限群共轭类的计算

D_4:Con(D_4)=5,每个共轭类的长度=[1,1,2,2,2]
C_8:Con(C_8)=8,每个共轭类的长度=[1,1,1,1,1,1,1,1]
Q_8:Con(Q_8)=5,每个共轭类的长度=[1,1,2,2,2]
D_9:Con(D_9)=6,每个共轭类的长度=[1,2,2,2,2,9]
// 定义:给定群G,对G种的两个元a,b,若存在G种的某个元g,使得g^-1ag=b,就成元素a,b在G中共轭,记为a~b。
bool IsConjugacy(const vector<vector<int>> &vvG,int a,int b)
{
    int N=vvG.size();
    for(int i=0;i<N;i++)
    {
        int ai=vvG[a][i]-1;
        int ib=vvG[i][b]-1;
        if(ai==ib)
            return true;
    }
    return false;
}

vector<int> ConjugacyClasses(const vector<vector<int>> &vvG,int a)
{
    vector<int> ret;
    int N=vvG.size();
    for(int i=0;i<N;i++)
    {
        bool bCon=IsConjugacy(vvG,a,i);
        if(bCon)
            ret.push_back(i);
    }
    return ret;
}

vector<vector<int>> ConjugacyClasses(const vector<vector<int>> &vvG)
{
    vector<vector<int>> vv;
    int N=vvG.size();
    for(int i=0;i<N;i++)
    {
        vector<int> v=ConjugacyClasses(vvG,i);
        vv.push_back(v);
    }
    sort(vv.begin(),vv.end());
    vv.erase(unique(vv.begin(),vv.end()),vv.end());
    return vv;
}

//G表示有限群,Con(G)表示G的共轭类个数,o(a)表示元素a的阶。
//群的共轭类个数、长度
vector<int> ConjugacyClasses(int *R,int N,int delt=1)
{
    vector<int> ret;
    if(!IsGroup(R,N,delt))
        return ret;
 //   // 共轭类数为1的有限群,只能是单位元群{e}。
    //if(N==1)
    //    return 1;
 //   // 共轭类数为2的有限群,只能是2阶循环群。
    //if(N==2)
    //    return 2; 
    vector<vector<int> > vvG=Arr2ToVec2(R,N,delt);
    vector<vector<int> > vv=ConjugacyClasses(vvG);
    int len=vv.size();
    for(int i=0;i<len;i++)
        ret.push_back(vv[i].size());
    sort(ret.begin(),ret.end());
    return ret;
}

    {
        int *Arr[]={g_D4,&g_C8Mul[0][0],&g_Q8Mul[0][0],g_D9};
        int Nrr[]={8,8,8,18};
        int Drr[]={0,1,1,0};
        const char *szName[]={"D_4","C_8","Q_8","D_9"};
        int n=sizeof(Arr)/sizeof(Arr[0]);
        for(int i=0;i<n;i++)
        {
            int *A=Arr[i];  
            int N=Nrr[i];
            vector<int> v=ConjugacyClasses(A,N,Drr[i]);
            string str="[";
            for(int j=0;j<v.size();j++)
            {
                char sz[20]={0};
                sprintf(sz,"%d,",v[j]);
                str+=sz;
            }
            str.pop_back();
            str+="]";
            printf("%s:Con(%s)=%d,每个共轭类的长度=%s\n",szName[i],szName[i],v.size(),str.c_str());
        }
        system("pause");
        return 0;
    }

编号  GAP 序列号  性质  指数  中心  G/[G,G]  共轭类  子群  子群类  正规子群  
1  1  循环  8  C8  C8  8  --  --  --  
2  2  阿贝尔  4  C2×C4  C2×C4  8  --  --  --  
3  5  阿贝尔  2  C23  C23  8  --  --  --  
4  4  幂零  4  C2  C22  5  6  6  6  
5  3  幂零  4  C2  C22  5  10  8  6 
编号  GAP 序列号  性质  指数  中心  G/[G,G]  共轭类  子群  子群类  正规子群  
1  2  循环  18  C2×C9  C2×C9  18  --  --  --  
2  5  阿贝尔  6  C2×C32  C2×C32  18  --  --  --  
3  1  两面体  18  1  C2  6  16  6  4  
4  4  可解  6  1  C2  6  28  12  7  
5  3  可解  6  C3  C2×C3  9  14  9  6  
G=D9由 3 个元素 {a1, a2, a3} 生成, 具有相应的阶 ( 2, 9, 3 ). 它也由 2 个元素 {a1, a2} 生成, 相应的阶为 ( 2, 9). 
G 有 6 个元素共轭类, 16 个子群在 6 个子群共轭类里, 其中 4 是正规子群. 
G=G18_5由 3 个元素 {a1, a2, a3} 生成, 具有相应的阶 ( 2, 3, 3 ). 
G 有 6 个元素共轭类, 28 个子群在 12 个子群共轭类里, 其中 7 是正规子群. 
G=D3C3由 3 个元素 {a1, a2, a3} 生成, 具有相应的阶 ( 2, 3, 3 ). 它也由 2 个元素 {a3, a2 a1} 生成, 相应的阶为 ( 3, 6). 
G 有 9 个元素共轭类, 14 个子群在 9 个子群共轭类里, 其中 6 是正规子群. 
共轭元素的定义:对于群G中的任意元素s,元素g和f=sgs^(-1)定义为互共轭元素,记为g~f。
自轭性: 任何元素与其本身共轭, 即g~g
对称性: 若g~f, 则f~g.
传递性: 若g~f_1,g~f_2,则f_1~f_2。
类的定义:群G中所有相互共轭的元素构成的集合称为群G的一个类。根据共轭关系的性质,群G的一个类中的元素可由该类中任一元素生成, 即f类={f'|f'=sfs^(-1),s∈G},s取遍群G所有元素,重复元素sfs^(-1)只取一次。根据共轭的传递性可证: 两个不同的类没有公共元素。
定理:有限群的阶是每一个类的元素个数的整数倍。
E.Landau定理(Frobenius猜想):共轭类数为n的有限群,在同构意义下是有限的。
定理:有限群为交换群的充要条件是Con(G)=|G|。
定理:共轭类数为1的有限群,只能是单位元群C_1。共轭类数为2的有限群,只能是2阶循环群C_2。共轭类数为3的有限群,是可解群,是3阶循环群或者6阶群。
Abel群G的每一共轭类只含一个元素,也就是说,G上每一个函数都是类函数。这种群的线性表示特别简单。
定理9:下列性质是等价的:
1.G是一个Abel群。
2.G的一切不可约表示都是一级的。
定理7:G的不可约表示的个数(确切到同构)等于G的共轭类的个数。
G的两个元素t和t'说是共轭的,如果存在s∈G使得t'=sts^(-1);这是一个等价关系,这个关系将G划分成类(也叫做共轭类)。
——群G的共轭类个数k是G的不变量,G是Abel群当且仅当k=|G|
——群G的共轭类个数与群G的同阶元个数分布是G的两个不变量,同阶元之间不一定共轭
 
20151006:GAP求有限群的共轭类个数以及每个共轭类的长度
gap> n:=18;;len:=NumberSmallGroups(n);;for i in [1..len] do Print(Size(ConjugacyClasses(SmallGroup(n,i))),","); od;
6,18,9,6,18,
gap> n:=8;;len:=NumberSmallGroups(n);;for i in [1..len] do Print(Size(ConjugacyClasses(SmallGroup(n,i))),","); od;
8,8,5,5,8,
gap> G:=SmallGroup(8,3);IdGroup(G);cl:=ConjugacyClasses(G);len:=Size(cl);for i in [1..len] do Print(Size(cl[i]),","); od;Print("\n");for i in [1..len] do Print(IdGroup(Centralizer(cl[i])),","); od;
<pc group of size 8 with 3 generators>
[ 8, 3 ]
[ <identity> of ...^G, f1^G, f2^G, f3^G, f1*f2^G ]
5
1,2,2,1,2,
[ 8, 3 ],[ 4, 2 ],[ 4, 2 ],[ 8, 3 ],[ 4, 1 ],
gap> G:=SmallGroup(8,4);IdGroup(G);cl:=ConjugacyClasses(G);len:=Size(cl);for i in [1..len] do Print(Size(cl[i]),","); od;Print("\n");for i in [1..len] do Print(IdGroup(Centralizer(cl[i])),","); od;
<pc group of size 8 with 3 generators>
[ 8, 4 ]
[ <identity> of ...^G, f1^G, f2^G, f3^G, f1*f2^G ]
5
1,2,2,1,2,
[ 8, 4 ],[ 4, 1 ],[ 4, 1 ],[ 8, 4 ],[ 4, 1 ],
gap> G:=SmallGroup(8,1);IdGroup(G);cl:=ConjugacyClasses(G);len:=Size(cl);for i in [1..len] do Print(Size(cl[i]),","); od;Print("\n");for i in [1..len] do Print(IdGroup(Centralizer(cl[i])),","); od;
<pc group of size 8 with 3 generators>
[ 8, 1 ]
[ <identity> of ...^G, f1^G, f2^G, f3^G, f1*f2^G, f1*f3^G, f2*f3^G, f1*f2*f3^G ]
8
1,1,1,1,1,1,1,1,
[ 8, 1 ],[ 8, 1 ],[ 8, 1 ],[ 8, 1 ],[ 8, 1 ],[ 8, 1 ],[ 8, 1 ],[ 8, 1 ],
gap> G:=SmallGroup(8,2);IdGroup(G);cl:=ConjugacyClasses(G);len:=Size(cl);for i in [1..len] do Print(Size(cl[i]),","); od;Print("\n");for i in [1..len] do Print(IdGroup(Centralizer(cl[i])),","); od;
<pc group of size 8 with 3 generators>
[ 8, 2 ]
[ <identity> of ...^G, f1^G, f2^G, f3^G, f1*f2^G, f1*f3^G, f2*f3^G, f1*f2*f3^G ]
8
1,1,1,1,1,1,1,1,
[ 8, 2 ],[ 8, 2 ],[ 8, 2 ],[ 8, 2 ],[ 8, 2 ],[ 8, 2 ],[ 8, 2 ],[ 8, 2 ],
gap> G:=SmallGroup(8,5);IdGroup(G);cl:=ConjugacyClasses(G);len:=Size(cl);for i in [1..len] do Print(Size(cl[i]),","); od;Print("\n");for i in [1..len] do Print(IdGroup(Centralizer(cl[i])),","); od;
<pc group of size 8 with 3 generators>
[ 8, 5 ]
[ <identity> of ...^G, f1^G, f2^G, f3^G, f1*f2^G, f1*f3^G, f2*f3^G, f1*f2*f3^G ]
8
1,1,1,1,1,1,1,1,
[ 8, 5 ],[ 8, 5 ],[ 8, 5 ],[ 8, 5 ],[ 8, 5 ],[ 8, 5 ],[ 8, 5 ],[ 8, 5 ],

猜你喜欢

转载自www.cnblogs.com/Ivanhan2019/p/12419767.html