【头歌educoder】离散数学实训参考-第二章-关系-part1-关系基础

目录

 第一关:求给定集合的对角线关系(Diagonal Relation)

 第二关:关系的合成

 第三关:关系的幂运算

 第四关:关系的并运算

 第五关:转换成关系矩阵

 第六关:自反关系的判断

 第七关:反自反关系的判断

 第八关:对称关系的判断

 第九关:非对称关系的判断

 第十关:反对称关系的判断

 第十一关:传递关系的判断

 第十二关:计算自反闭包

 第十三关:关系的对称闭包

 第十四关:关系的传递闭包

 第十五关:利用Warshall算法求传递闭包

 第十六关:判断等价关系

 第十七关:计算等价类

 第十八关:从划分生成等价关系

 第十九关:判断半序关系

 第二十关:判断逆序关系

 第二十一关:判断全序关系

 第二十二关:关系矩阵的 join 运算

 第二十三关:关系矩阵的 meet 运算

 第二十四关:关系矩阵的布尔乘积

 代码总和实现


        本人未系统学习过离散数学,完成此实训只是在熟悉python。


 第一关:求给定集合的对角线关系(Diagonal Relation)

  • 任务简述:添加方法diagonalRelation(self),返回对角线关系对象
  • 总体思路:NEW rel = [(x, x) for x in self.sets]
  • 相关知识:类实例创建、列表表达式
  • 关卡难度:0.4   代码于文末

 第二关:关系的合成

  • 任务简述:重载方法__mul__(self),用于实现关系的合成。R_1*R_2 = R1\cdot R_2
  • 总体思路:NEW rel = [(x,z) for (x,y) in other.rel for (y1,z) in self.rel if y == y1]
  • 相关知识:类实例创建、列表表达式、方法重载
  • 关卡难度:0.5  代码于文末

 第三关:关系的幂运算

  • 任务简述:重载方法__pow__(self, power),实现关系的幂运算。R^n = R\cdot R\cdots
  • 总体思路:幂次为-1时求反,幂次为0时求对角线,其他递归运算即可
  • 相关知识:重载、递归
  • 关卡难度:0.7  代码于文末

 第四关:关系的并运算

  • 任务简述:重载方法__add__(self, other),实现加法,即关系的并
  • 总体思路:关系求并集
  • 相关知识:集合的并集运算
  • 关卡难度:0.2  代码于文末

 第五关:转换成关系矩阵

  • 任务简述:添加方法toMatrix(self),实现将序偶形式的关系转换成矩阵形式
  • 总体思路:先把集合化为列表并排序,对矩阵一行一行去赋值
  • 相关知识:列表排序、列表的*运算
  • 关卡难度:0.7   代码于文末

 第六关:自反关系的判断

  • 任务简述:添加方法isReflexive(self),实现对自反性的判断
  • 总体思路:对每个元素进行一次判读,一旦出现某元素不自反,返回False
  • 相关知识:对集合的遍历、innot in
  • 关卡难度:0.4  代码于文末

 第七关:反自反关系的判断

  • 任务简述:添加方法isIrreflexive(self),实现对反自反性的判断
  • 总体思路:对每个元素进行一次判读,一旦出现某元素自反,返回False
  • 相关知识:对集合的遍历、innot in
  • 关卡难度:0.4   代码于文末

 第八关:对称关系的判断

  • 任务简述:添加方法isSymmetric(self),实现对对称性的判断
  • 总体思路:对每个元素进行一次判读,一旦出现某元素不对称,返回False
  • 相关知识:对集合的遍历、innot in
  • 关卡难度:0.4   代码于文末

 第九关:非对称关系的判断

  • 任务简述:添加方法isAsymmetric(self),实现对非对称性的判断
  • 总体思路:对每个元素进行一次判读,一旦出现某元素对称,返回False
  • 相关知识:对集合的遍历、innot in
  • 关卡难度:0.4   代码于文末

 第十关:反对称关系的判断

  • 任务简述:添加方法isAntiSymmetric(self),实现对反对称性的判断
  • 总体思路:一旦出现某元素对称且不位于对角线,返回False
  • 相关知识:对集合的遍历、innot in
  • 关卡难度:0.5   
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值