【记得交作业】波波离散实验报告六(python实现)

实验名称群的判定

实验目的和要求掌握群的判定方法。

实验内容:

输入代数系统(A,*)的集合A和*运算的运算表,判断(A,*)是否是群。

  1. 用一维数组a[n]存贮集合A。
  2. 用二维数组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('不是一个群!')

运行结果如下:

 

 代码可能存在借鉴,侵删!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值