目录
第一关:求给定集合的对角线关系(Diagonal Relation)
本人未系统学习过离散数学,完成此实训只是在熟悉python。
第一关:求给定集合的对角线关系(Diagonal Relation)
- 任务简述:添加方法diagonalRelation(self),返回对角线关系对象
- 总体思路:NEW rel = [(x, x) for x in self.sets]
- 相关知识:类实例创建、列表表达式
- 关卡难度:0.4 代码于文末
第二关:关系的合成
- 任务简述:重载方法__mul__(self),用于实现关系的合成。
- 总体思路:NEW rel = [(x,z) for (x,y) in other.rel for (y1,z) in self.rel if y == y1]
- 相关知识:类实例创建、列表表达式、方法重载
- 关卡难度:0.5 代码于文末
第三关:关系的幂运算
- 任务简述:重载方法__pow__(self, power),实现关系的幂运算。
- 总体思路:幂次为-1时求反,幂次为0时求对角线,其他递归运算即可
- 相关知识:重载、递归
- 关卡难度:0.7 代码于文末
第四关:关系的并运算
- 任务简述:重载方法__add__(self, other),实现加法,即关系的并
- 总体思路:关系求并集
- 相关知识:集合的并集运算
- 关卡难度:0.2 代码于文末
第五关:转换成关系矩阵
- 任务简述:添加方法toMatrix(self),实现将序偶形式的关系转换成矩阵形式
- 总体思路:先把集合化为列表并排序,对矩阵一行一行去赋值
- 相关知识:列表排序、列表的*运算
- 关卡难度:0.7 代码于文末
第六关:自反关系的判断
- 任务简述:添加方法isReflexive(self),实现对自反性的判断
- 总体思路:对每个元素进行一次判读,一旦出现某元素不自反,返回False
- 相关知识:对集合的遍历、in、not in
- 关卡难度:0.4 代码于文末
第七关:反自反关系的判断
- 任务简述:添加方法isIrreflexive(self),实现对反自反性的判断
- 总体思路:对每个元素进行一次判读,一旦出现某元素自反,返回False
- 相关知识:对集合的遍历、in、not in
- 关卡难度:0.4 代码于文末
第八关:对称关系的判断
- 任务简述:添加方法isSymmetric(self),实现对对称性的判断
- 总体思路:对每个元素进行一次判读,一旦出现某元素不对称,返回False
- 相关知识:对集合的遍历、in、not in
- 关卡难度:0.4 代码于文末
第九关:非对称关系的判断
- 任务简述:添加方法isAsymmetric(self),实现对非对称性的判断
- 总体思路:对每个元素进行一次判读,一旦出现某元素对称,返回False
- 相关知识:对集合的遍历、in、not in
- 关卡难度:0.4 代码于文末
第十关:反对称关系的判断
- 任务简述:添加方法isAntiSymmetric(self),实现对反对称性的判断
- 总体思路:一旦出现某元素对称且不位于对角线,返回False
- 相关知识:对集合的遍历、in、not in
- 关卡难度:0.5

最低0.47元/天 解锁文章
3549

被折叠的 条评论
为什么被折叠?



