离散数学实践:关系的性质判断&关系的幂&关系的传递闭包

本文介绍了如何使用面向对象编程实现离散数学中的二元关系类,包括关系矩阵的存储、显示,以及关系的自反性、对称性、传递性的判断。此外,还实现了关系的逆、位运算、交并差补、合成、幂运算、自反闭包、对称闭包和传递闭包等功能。通过Warshall算法实现了传递闭包的计算。作者在更新中提到已完成了规划的主要功能,尽管过程充满挑战。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二元关系类{

成员变量:

指向存储在一维数组中的关系矩阵的指针p;

矩阵的阶数;     //在构造函数中手动输入

成员函数:

 重载构造函数(无参数);     //运行时手动输入参数进行初始化

 showMatrix;        //在屏幕上输出矩阵

 判断关系的特性         //自反,对称,传递

关系的逆;

与或位运算;

关系的交并差补;          //调用与或位运算

关系的合成;             //调用与或位运算(友元函数 * 运算符重载)

关系的幂;         //循环调用关系的合成函数,并根据P86定理4.3.6进行优化,即判断j次幂是否等于i次幂,等于则循环终止,根据前文推导出较大指数的结果

关系的自反闭包;              

关系的对称闭包;

关系的传递闭包;             //P90 Warshall算法

};

打钩的必做,其它选做.

大概就是这样吧,之前做的面向过程版本,发现做的千疮百孔,所以还是使用类吧.

貌似给自己挖了个大坑啊,还要撸高数呀哪有时间搞这个...


update@13.11.25:

大坑终于终于填上了,基本把之前规划的必做部分完成了,自己也奇怪写了这么多,等我飞起来之后再回头看的时候,也许会感慨自己当年这么挫吧,写的这么拉杂又没效率,嘿嘿.

//BinaryRelation.h

#pragma once
#incl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值