实验名称:二元关系及其性质
实验目的和要求:
掌握二元关系在计算机上的表示方法,并掌握如果判定关系的性质。
实验内容:
实验四 二元关系及其性质
编程判断一个二元关系是否为等价关系,如果是,求其商集。
等价关系:集合A上的二元关系R同时具有自反性、对称性和传递性,则称R是A上的等价关系。
【实验原理和方法】
(1)A上的二元关系用一个n×n关系矩阵R=表示,定义一个n×n数组r[n][n]表示n×n矩阵关系。
(2)若R对角线上的元素都是1,则R具有自反性。
思路:使用flag标记,符合等价关系值为1.
实验心得:
我只会判断一个关系是否为等价关系,求商集的原理还没有特别理解,希望大家能够帮忙补充!感谢!!!
代码如下:
mat=[]
n=int(input('输入阶数:'))
for i in range(n):
mat.append(input('第{}行'.format(i+1)).split())
#自反
zifan=1
for i in range(n):
if mat[i][i]!=1:
zifan=0
#对称
duichen=1
for i in range(n):
for j in range(n):
if mat[i][j]!=mat[j][i]:
duichen=0
#传递
chuandi=1
for i in range(n):
for j in range(n):
for k in range(n):
if mat[i][j]==1 and mat[j][k]==1 and mat[i][k]!=1:
chuandi=0
if zifan==duichen==chuandi==1:
print('是等价关系!')
else:
print('不是等价关系!')
运行结果如下:
代码可能存在借鉴,侵删!