
【实验目的】掌握群的判定方法。
【实验内容】输入代数系统(A,*)的集A和*运算的运算表,判断(A,*)是否是群。
【实验原理和方法】
(1)用一维数组a[n]存贮集合A。
(2)用二维数组op[n][n]存贮运算表。
(3)根据群的定义,代数系统(A,*)若为群,除运算表已表明运算*封闭外,还应该满足下列三个条件:
*运算可结合、有幺元e、 A中任何元素都有逆元。*/
#include int main() { int a[10]={0,1,2,3,4,5,6,7,8,9}; int i,j,b,c,f,g,h,m,l,o=0,n=0,k=0,d=0,e=0; char op[2][2]={'+','-','*','/'}; for(i=0;i<10;i++) for(j=0;j<10;j++) { for(f=0;f<2;f++) for(g=0;g<2;g++) { if(op[f][g]=='+') b=a[i]+a[j]; if(op[f][g]=='-') b=a[i]-a[j]; if(op[f][g]=='*') b=a[i]*a[j]; if(op[f][g]=='/') { if(a[j]!=0) b=a[i]/a[j]; }; d++; for(c=0;c<10;c++) { if(b==a[c]) e++; if(b==a[c]) break; }; }; }; printf("%d\\n",d); printf("%d\\n",e); if(d==e) printf("(A,+,-,*,/)具有封闭性;\\n"); else printf("(A,+,-,*,/)不具有封闭性;\\n"); for(i=0;i<10;i++) {for(j=0;j<10;j++) {for(h=0;h<10;h++) { if(a[i]+a[j]+a[h]!=a[i]+a[j]+a[h]) k++; if(a[i]+a[j]+a[h]!=a[i]+a[j]+a[h]) break; }; if(a[i]+a[j]+a[h]!=a[i]+a[j]+a[h]) break; }; if(a[i]+a[j]+a[h]!=a[i]+a[j]+a[h]) break; }; if(k==0) printf("(A,+)具有结合性;\\n"); else printf("(A,+)不具有结合性;\\n"); for(i=0;i<10;i++) {for(j=0;j<10;j++) { if(a[i]*a[j]==a[j]) m=a[i]; if(a[i]*a[j]==a[j]) break; }; if(a[i]*a[j]==a[j]) break; }; for(i=0;i<10;i++) { if(a[i]*m!=a[i]) n++; if(a[i]*m!=a[i]) break; }; if(n==0) printf("(A,*)存在幺元%d\\n",m); else printf("(A,*)存在幺元\\n"); for(i=0;i<10;i++) {for(j=0;j<10;j++) { l=0; if(a[i]*a[j]==1) l++; if(a[i]*a[j]==1) break; }; if(l==0) o++; if(l==0) break; }; if(o==0) printf("A中任何元素都有逆元\\n"); else printf("A中任何元素不都有逆元\\n"); return 0; }
