GAP計算環不變量的命令

環不變量左邊如果要加上N0n0就添加如下命令:
gap> getS1:=function(L1,LL1) local S1,a,b,n;S1:=[];for a in L1 do n:=0;for b in LL1 do if b=a and b in L1 then n:=n+1;fi;od;Add(S1,n);od;return S1;end;;
gap> getGnEOrder:=function(A,a) local n,t1,ret,i;n:=Size(A);t1:=1;ret:=-1;for i in [1..n] do t1:=A[t1][a];if t1=1 then ret:=i;break;fi;od;return ret;end;;
gap> calN1:=function(R) local L,m,AddArr,i,i1,i2,A,N1;L:=Elements(R);;m:=Size(R);;AddArr:=[];;for i1 in L do A:=[];for i2 in L do Add(A,Position(L,i1+i2));od;Add(AddArr,A);od;N1:=[];;for i in [1..m] do Add(N1,getGnEOrder(AddArr,i));od;return N1;end;;
gap> calN0:=function(R) local L,m,AddArr,i,i1,i2,A,N1,N0;L:=Elements(R);;m:=Size(R);;AddArr:=[];;for i1 in L do A:=[];for i2 in L do Add(A,Position(L,i1+i2));od;Add(AddArr,A);od;N1:=[];;for i in [1..m] do Add(N1,getGnEOrder(AddArr,i));od;N0:=getS1(DivisorsInt(m),N1);return N0;end;;
gap> caln0:=function(N1) local N,i;N:=[];for i in N1 do if i>0 then Add(N,i);fi;od;return Lcm(N);end;;
gap> calR:=function(R) local L,bA,bO,j6,j7,n1,n2,n3,n4,n5,n6,n7,n8,i1,i2,i3,i4,i5,i6,i7,i8,N0,N1,n0;N0:=calN0(R);N1:=calN1(R);n0:=caln0(N1);L:=Elements(R);;n1:=0;;for i1 in L do if InverseMutable(i1)=fail then n1:=n1+1;fi;od;n2:=0;;for i2 in L do if IsIdempotent(i2) then n2:=n2+1;fi;od;n4:=0;;for i4 in L do if IsZero(i4)=false and i4^2=Zero(R) then n4:=n4+1;fi;od;n5:=0;;for i5 in L do if IsZero(i5)=false and i5^3=Zero(R) then n5:=n5+1;fi;od;n6:=0;;for i6 in L do for j6 in L do if IsZero(i6*j6) then n6:=n6+1;fi;od;od;n3:=0;;for i3 in L do if IsOne(i3) then n3:=n3+1;fi;od;if n3<>1 then n3:=0;fi;bA:=0;if IsAbelian(R) then bA:=1;fi;n7:=0;;for i7 in L do for j7 in L do if IsZero(i7)=false and IsZero(j7)=false and IsZero(i7*j7) then n7:=n7+1;break;fi;od;od;n8:=Size(Center(R));;Print("N0n0bAbOn1n2n4n5n6n7n8=",N0,",",n0,",",bA,",",n3,",",n1,",",n2,",",n4,",",n5,",",n6,",",n7,",",n8,"\n");end;;
gap> R:=SmallRing(4,5);;calR(R);
N0n0bAbOn1n2n4n5n6n7n8=[ 1, 3, 0 ],2,1,0,4,1,1,3,12,3,4
gap> R:=RingByGenerators([ZmodnZObj(1,10)]);;calR(R);
N0n0bAbOn1n2n4n5n6n7n8=[ 1, 1, 4, 4 ],10,1,1,6,4,0,0,27,5,10

gap> calR:=function(R) L:=Elements(R);;n1:=0;;for i1 in L do if InverseMutable(i1)=fail then n1:=n1+1;fi;od;n2:=0;;for i2 in L do if IsIdempotent(i2) then n2:=n2+1;fi;od;n4:=0;;for i4 in L do if IsZero(i4)=false and i4^2=Zero(R) then n4:=n4+1;fi;od;n5:=0;;for i5 in L do if IsZero(i5)=false and i5^3=Zero(R) then n5:=n5+1;fi;od;n6:=0;;for i6 in L do for j6 in L do if IsZero(i6*j6) then n6:=n6+1;fi;od;od;n3:=0;;for i3 in L do if IsOne(i3) then n3:=n3+1;fi;od;if n3<>1 then n3:=0;fi;bA:=0;if IsAbelian(R) then bA:=1;fi;n7:=0;;for i7 in L do for j7 in L do if IsZero(i7)=false and IsZero(j7)=false and IsZero(i7*j7) then n7:=n7+1;break;fi;od;od;n8:=Size(Center(R));;Print("bAbOn1n2n4n5n6n7n8=",bA,",",n3,",",n1,",",n2,",",n4,",",n5,",",n6,",",n7,",",n8,"\n");end;;
gap> R:=RingByGenerators([ZmodnZObj(10,100)]);;calR(R);
bAbOn1n2n4n5n6n7n8=1,0,10,1,9,9,100,9,10
gap> R:=RingByGenerators([ZmodnZObj(2,20)]);;calR(R);
bAbOn1n2n4n5n6n7n8=1,0,10,2,1,1,36,9,10
gap> R:=RingByGenerators([ZmodnZObj(1,10)]);;calR(R);                                                                   bAbOn1n2n4n5n6n7n8=1,1,6,4,0,0,27,5,10;
gap> R:=RingByGenerators([ZmodnZObj(5,50)]);;calR(R);
bAbOn1n2n4n5n6n7n8=1,0,10,2,4,4,75,9,10
gap> m:=10;;n:=NumberSmallRings(m);;for i in [1..n] do R:=SmallRing(m,i);Print("R",m,"_",i,":");calR(R);od;
R10_1:bAbOn1n2n4n5n6n7n8=1,0,10,1,9,9,100,9,10【R10_1=10Z/100Z】
R10_2:bAbOn1n2n4n5n6n7n8=1,0,10,2,1,1,36,9,10【R10_2=2Z/20Z】
R10_3:bAbOn1n2n4n5n6n7n8=1,1,6,4,0,0,27,5,10【R10_3=Z/10Z】
R10_4:bAbOn1n2n4n5n6n7n8=1,0,10,2,4,4,75,9,10【R10_4=5Z/50Z】
gap> m:=14;;n:=NumberSmallRings(m);;for i in [1..n] do R:=SmallRing(m,i);Print("R",m,"_",i,":");calR(R);od;
R14_1:bAbOn1n2n4n5n6n7n8=1,0,14,1,13,13,196,13,14
R14_2:bAbOn1n2n4n5n6n7n8=1,0,14,2,1,1,52,13,14
R14_3:bAbOn1n2n4n5n6n7n8=1,1,8,4,0,0,39,7,14
R14_4:bAbOn1n2n4n5n6n7n8=1,0,14,2,6,6,147,13,14
gap> R:=RingByGenerators([ZmodnZObj(14,196)]);;calR(R);
bAbOn1n2n4n5n6n7n8=1,0,14,1,13,13,196,13,14
gap> R:=RingByGenerators([ZmodnZObj(2,28)]);;calR(R);
bAbOn1n2n4n5n6n7n8=1,0,14,2,1,1,52,13,14
gap> R:=RingByGenerators([ZmodnZObj(1,14)]);;calR(R);
bAbOn1n2n4n5n6n7n8=1,1,8,4,0,0,39,7,14
gap> R:=RingByGenerators([ZmodnZObj(7,98)]);;calR(R);
bAbOn1n2n4n5n6n7n8=1,0,14,2,6,6,147,13,14
gap> m:=15;;n:=NumberSmallRings(m);;for i in [1..n] do R:=SmallRing(m,i);Print("R",m,"_",i,":");calR(R);od;
R15_1:bAbOn1n2n4n5n6n7n8=1,0,15,1,14,14,225,14,15
R15_2:bAbOn1n2n4n5n6n7n8=1,1,7,4,0,0,45,6,15
R15_3:bAbOn1n2n4n5n6n7n8=1,0,15,2,2,2,81,14,15
R15_4:bAbOn1n2n4n5n6n7n8=1,0,15,2,4,4,125,14,15
gap> R:=RingByGenerators([ZmodnZObj(15,225)]);;calR(R);
bAbOn1n2n4n5n6n7n8=1,0,15,1,14,14,225,14,15
gap> R:=RingByGenerators([ZmodnZObj(3,45)]);;calR(R);
bAbOn1n2n4n5n6n7n8=1,0,15,2,2,2,81,14,15
gap> R:=RingByGenerators([ZmodnZObj(1,15)]);;calR(R);
bAbOn1n2n4n5n6n7n8=1,1,7,4,0,0,45,6,15
gap> R:=RingByGenerators([ZmodnZObj(5,75)]);;calR(R);
bAbOn1n2n4n5n6n7n8=1,0,15,2,4,4,125,14,15
D:\MathTool\gaptool>Rpq
R6_1:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,1,2,2],6,1,0,6,1,5,5,36,5,6,[1,1,2,2],[]
R6_2:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,1,2,2],6,1,0,6,2,1,1,20,5,6,[1,1,2,2],[[3,3,4],[3,6,4],[6,3,4],[6,6,4]]
R6_4:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,1,2,2],6,1,1,4,4,0,0,15,3,6,[1,1,2,2],[[2,2,1],[2,6,2],[3,3,4],[3,6,4],[6,2,2],[6,3,4],[6,6,4]]
R6_3:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,1,2,2],6,1,0,6,2,2,2,27,5,6,[1,1,2,2],[[2,2,1],[2,6,2],[6,2,2],[6,6,4]]
R10_1:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,1,4,4],10,1,0,10,1,9,9,100,9,10,[1,1,4,4],[]
R10_2:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,1,4,4],10,1,0,10,2,1,1,36,9,10,[1,1,4,4],[[5,5,16],[5,10,16],[10,5,16],[10,10,16]]
R10_3:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,1,4,4],10,1,1,6,4,0,0,27,5,10,[1,1,4,4],[[2,2,1],[2,10,4],[5,5,16],[5,10,16],[10,2,4],[10,5,16],[10,10,16]]
R10_4:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,1,4,4],10,1,0,10,2,4,4,75,9,10,[1,1,4,4],[[2,2,1],[2,10,4],[10,2,4],[10,10,16]]
R14_1:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,1,6,6],14,1,0,14,1,13,13,196,13,14,[1,1,6,6],[]
R14_2:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,1,6,6],14,1,0,14,2,1,1,52,13,14,[1,1,6,6],[[7,7,36],[7,14,36],[14,7,36],[14,14,36]]
R14_3:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,1,6,6],14,1,1,8,4,0,0,39,7,14,[1,1,6,6],[[2,2,1],[2,14,6],[7,7,36],[7,14,36],[14,2,6],[14,7,36],[14,14,36]]
R14_4:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,1,6,6],14,1,0,14,2,6,6,147,13,14,[1,1,6,6],[[2,2,1],[2,14,6],[14,2,6],[14,14,36]]
R15_1:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,2,4,8],15,1,0,15,1,14,14,225,14,15,[1,2,4,8],[]
R15_3:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,2,4,8],15,1,0,15,2,2,2,81,14,15,[1,2,4,8],[[5,5,16],[5,15,32],[15,5,32],[15,15,64]]
R15_2:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,2,4,8],15,1,1,7,4,0,0,45,6,15,[1,2,4,8],[[3,3,4],[3,15,16],[5,5,16],[5,15,32],[15,3,16],[15,5,32],[15,15,64]]
R15_4:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,2,4,8],15,1,0,15,2,4,4,125,14,15,[1,2,4,8],[[3,3,4],[3,15,16],[15,3,16],[15,15,64]]
#include"ZmodnZ.h"

void R6()
{
    ZmodnZ r6_1(6,36);
    r6_1.printTable();
    ZmodnZ r6_2(2,12);
    r6_2.printTable();    
    ZmodnZ r6_3(1,6);
    r6_3.printTable();    
    ZmodnZ r6_4(3,18);
    r6_4.printTable();    
}

void R10()
{
    ZmodnZ r10_1(10,100);
    r10_1.printTable();
    ZmodnZ r10_2(2,20);
    r10_2.printTable();    
    ZmodnZ r10_3(1,10);
    r10_3.printTable();    
    ZmodnZ r10_4(5,50);
    r10_4.printTable();    
}

void R14()
{
    ZmodnZ r14_1(14,196);
    r14_1.printTable();
    ZmodnZ r14_2(2,28);
    r14_2.printTable();    
    ZmodnZ r14_3(1,14);
    r14_3.printTable();    
    ZmodnZ r14_4(7,98);
    r14_4.printTable();    
}
void R15()
{
    ZmodnZ r15_1(15,225);
    r15_1.printTable();
    ZmodnZ r15_2(3,45);
    r15_2.printTable();    
    ZmodnZ r15_3(1,15);
    r15_3.printTable();    
    ZmodnZ r15_4(5,75);
    r15_4.printTable();    
}

int main()

    R6();
    R10();    
    R14();    
    R15();        
    return 0;
}

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