【离散数学】Python语言实现关系性质的判断

这篇具有很好参考价值的文章主要介绍了【离散数学】Python语言实现关系性质的判断。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实验内容:

用矩阵表示二元关系;通过矩阵的特征判断二元关系所具有的性质;运用二维数组实现矩阵的输入,然后判断自反性,反自反性,对称性,反对称性,传递性

先复习一下相关的基础知识:

 1.    判断自反性:矩阵主对角线元素全为1

2.    判断反自反性:矩阵主对角线元素全为0

3.    判断对称性:矩阵根据主对角线对称位置的元素相等

4.    判断反对称性:如果Rij == 1,且 i!=j 则Rij == 0

5.    判断传递性:如果Rij == 1,且 Rjk == 1 则Rjk == 1

源代码如下:

# Author:  zhtstar
# Time:   2022/4/23 10:26

#获取矩阵的规模
dimension = eval(input('请输入矩阵的维数:'))

#初始化矩阵
matrix = [[0 for i in range(dimension)] for j in range(dimension)]

#给矩阵赋值
print('请按位置关系输入矩阵中各元素的值:')
for i in range(dimension):
    arr = input().split(' ')
    for j in range(dimension):
        matrix[i][j] = int(arr[j])


#判断自反性 is_reflexive
def is_reflexive(list):
    flag = 1
    for i in range(dimension):
        if list[i][i] != 1:
            flag = 0
            break
    return flag


#判断反自反性 is_irreflexive
def is_irreflexive(list):
    flag = 1
    for i in range(dimension):
        if list[i][i] != 0:
            flag = 0
            break
    return flag


#判断对称性 is_symmetric
def is_symmetric(list):
    flag = 1
    for i in range(dimension):
        for j in range(dimension):
            if list[i][j] != list[j][i]:
                flag = 0
                break
    return flag

#判断反对称性 is_antisymmetric
def is_antisymmetric(list):
    flag = 1
    for i in range(dimension):
        for j in range(dimension):
            if list[i][j]==1 and i!=j:
                if list[j][i] == 1:
                    flag = 0
                    break
    return flag

#判断传递性 is_transitive
def is_transitive(list):
    flag = 1
    for i in range(dimension):
        for j in range(dimension):
            for k in range(dimension):
                if list[i][j]==1 and list[j][k]==1 and list[i][k] == 0:
                    flag = 0
                    break
    return flag

result = ''
if is_reflexive(matrix) == 1:
    result += '自反性 '
if is_irreflexive(matrix) == 1:
    result += '反自反性 '
if is_symmetric(matrix) == 1:
    result += '对称性 '
if is_antisymmetric(matrix) == 1:
    result += '反对称性 '
if is_transitive(matrix) == 1:
    result += '传递性 '

# print(matrix)
if result != '':
    print('输入的矩阵的性质有:',result)
else:
    print('输入的矩阵什么性质也没有')

运行结果截图:

以下测试用例来源于课本《离散数学》113页 题4.4

离散数学判断群实验python,python,开发语言,矩阵,图论

离散数学判断群实验python,python,开发语言,矩阵,图论

离散数学判断群实验python,python,开发语言,矩阵,图论 离散数学判断群实验python,python,开发语言,矩阵,图论

 离散数学判断群实验python,python,开发语言,矩阵,图论

 

分析与总结:

本次的实验任务已完成,本次的作业主要是在利用矩阵表示二元关系的前提下,通过矩阵的特征来判断二元关系的性质,并在最后输出判断结果。

在实验中,我定义了5个函数来分别判断该二元关系的自反性、反自反性、对称性、反对称性、传递性。在判断自反性、反自反性的函数内部,直接来观察矩阵的对角线元素的特征;在判断对称性、反对称性、传递性的函数内部采用逆向思维法,不直接判断该二元关系是否符合某些特征,而是寻找二元关系中是否存在不符合这些关系的反例,一旦找到反例,直接结束判断,并返回判断结果。

这次实验任务主要涉及的知识如下:

1.判断自反性:矩阵主对角线元素全为1

2.判断反自反性:矩阵主对角线元素全为0

3.判断对称性:矩阵根据主对角线对称位置的元素相等

4.判断反对称性:如果Rij == 1,且 i!=j 则Rij == 0

5.判断传递性:如果Rij == 1,且 Rjk == 1 则Rjk == 1

 文章来源地址https://www.toymoban.com/news/detail-766830.html

到了这里,关于【离散数学】Python语言实现关系性质的判断的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OUC离散数学II实验二(Python+Cpp)

    生成树、环路空间、断集空间的求解 1、掌握无向连通图生成树的求解方法; 2、掌握基本回路系统和环路空间的求解方法; 3、掌握基本割集系统和断集空间的求解方法; 4、了解生成树、环路空间和断集空间的实际应用。 给定一无向简单连通图的相邻矩阵 (例如: )。 1、

    2024年02月03日
    浏览(38)
  • 离散数学 --- 二元关系 --- 关系的运算

      进行关系A和关系B进行关系的复合运算的前提是关系A的后域是关系B的前域,且最终得到的复合关系C的前域是关系A的前域,后域是关系B的后域(且这个前域值在关系A中对应的后域值与这个后域值在关系B中对应的前域值相等) 1.关系的复合运算必然涉及到三个集合,两个集

    2024年02月02日
    浏览(44)
  • 离散数学_九章:关系(3)

    本节及本章的剩余部分研究的所有关系均为二元关系,因此,在这些内容中出现的“关系〞一词都表示二元关系 关系是序偶的集合,所以描述集合能用的方法一般都可以描述关系,比如枚举满足关系的所有序偶,比如叙述满足关系的性质。 前面的例子都是用集合表示关系,

    2024年02月02日
    浏览(36)
  • 离散数学_九章:关系(5)

    定义1: 定义在集合 A 上的关系叫做等价关系,如果它们是 自反的、对称的和传递的。 定义2: 如果两个元素 a 和 b 由于等价关系而相关联,则称它们是等价的。记法 a~b 通常用来表示对于某个特定的等价关系来说,a 和 b 是等价的元素。 设 m 是大于 1 的整数。证明以下关系

    2024年02月02日
    浏览(353)
  • 离散数学_九章:关系(2)

    n元关系:两个以上集合的元素间的关系 设A 1 ,A 2 ,……,A n 是集合。定义在这些集合上的n元关系是A1×A2×……×An 的子集。这些集合A 1 ,A 2 ,……,A n 称为关系的域,n称为关系的阶。 📘例1:设R是N × N × N上的三元组(a, b, c)构成的关系,是个3阶关系,其中a, b, c是满

    2023年04月19日
    浏览(35)
  • 离散数学之矩阵关系运算

    矩阵关系运算前提: (1)第一个矩阵的列数等于第二个矩阵的行数。 (2)两个矩阵的元素均是0或1。 例如:A关系运算B得到C   原理:C11=(A11∧B11)∨(A12∧B21) C12=(A11∧B12)∨(A12∧B22)...... 就是把矩阵乘法中各个元素的乘法变成合取,原来乘法之后进行的相加改为合取后的析取。    

    2024年02月12日
    浏览(38)
  • 离散数学_九章:关系(1)

    设A和B是集合,一个从 A 到 B 的二元关系是A×B的子集。 (序偶集合的子集) 🐳换句话说,一个从A到B的二元关系是集合R,其中每个有序对的第一个元素取自A而第二个元素取自B。 我们使用记号 aRb表示(a, b)∈R,a R b表示(a, b)∉R。当(a, b)属于R时,称 a与b有关系R 。 📘例:设

    2024年02月08日
    浏览(45)
  • 【Educoder离散数学实训】关系基础

    题有点多,能聊的不多。有些题还是比较有价值的 就单独说几个题,代码放在最后。所有函数都改成自己写的了,没准比答案给的好读一点? T1 求给定集合的对角线关系(diagonal relation) 我觉得如果卡住的话,第一关会是一个大坎。 因为我们并不知道他到底在说啥,于是我

    2024年02月07日
    浏览(50)
  • 离散数学 --- 特殊关系 --- 偏序关系,哈斯图和特殊元素以及其它次序关系

    1.当我们用 ≤ 符号来表示偏序关系的时候,这个符号就不再局限于它本来的含义了,此时的它表示的是元素之间的先后顺序,如下图:   1.这里的可比的意思是可比较元素在偏序关系中的先后顺序   1.哈斯图其实就是简化版的偏序关系的关系图 2.什么叫做由于传递关系必须出

    2024年01月15日
    浏览(37)
  • 【离散数学】二元关系中的对称与反对称

    对称与反对称:  注: 存在既是对称也是反对称的关系,也存在既非 对称也非反对称的关系 例题1:  例题2:          

    2024年02月16日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包