实验名称:群的判定
实验目的和要求:掌握群的判定方法。
实验内容:
输入代数系统(A,*)的集合A和*运算的运算表,判断(A,*)是否是群。
- 用一维数组a[n]存贮集合A。
- 用二维数组op[n][n]存贮运算表。
(3)根据群的定义,代数系统(A,*)若为群,除运算表已表明运算*封闭外,还应该满足下列三个条件:*运算可结合、有幺元e、 A中任何元素都有逆元。若三个条件全满足,则判定为群。
实验心得:
1.代码如下:
a = [eval(x) for x in input('请输入元素:').split()]
a.sort()
print('元素有:',a)
n=len(a)
op=[]
for i in range(n):
op.append(list(map(int, input('请输入运算表第{}行'.format(i+1)).rstrip().split())))
for row in range(n):
for column in range(n):
print(op[row][column], end=' ')
print()
判断幺元:
#幺元
yaoyuan=0
for x in range(n):
count=0
for y in range(n):
if op[x][y]==a[y] and op[y][x]==a[y]:
count+=1
if op[x][y]==a[y] and op[x][y]==a[x]:
e=a[x]
if count==n:
yaoyuan=1
if yaoyuan==0:
print('不存在幺元!')
else:
print('存在幺元e=',e)
判断可结合:
#可结合
kejiehe=1
for i in range(n):
for j in range(n):
for k in range(n):
if op[int(a[i])-1][int(op[j][k])-1]!=op[int(op[i][j])-1][int(a[k])-1]:
kejiehe=0
if kejiehe==0:
print('不可结合!')
else:
print('可结合!')
判断逆元:
#所有元素都有逆元
niyuan=0
count=0
for x in range(n):
for y in range(n):
if op[x][y]==e and op[y][x]==e:
count+=1
if count==n:
niyuan=1
if niyuan==0:
print('不是所有元素都有逆元!')
else:
print('所有元素都有逆元!')
if yaoyuan==1 and kejiehe==1 and niyuan==1:
print('是一个群!')
else:
print('不是一个群!')
运行结果如下:
代码可能存在借鉴,侵删!