离散数学实验C关系的运算幂运算闭包运算.docx
- 文档编号:11268759
- 上传时间:2023-05-30
- 格式:DOCX
- 页数:8
- 大小:15.60KB
离散数学实验C关系的运算幂运算闭包运算.docx
《离散数学实验C关系的运算幂运算闭包运算.docx》由会员分享,可在线阅读,更多相关《离散数学实验C关系的运算幂运算闭包运算.docx(8页珍藏版)》请在冰点文库上搜索。
离散数学实验C关系的运算幂运算闭包运算
实验2关系的运算
(1)关系的幂运算
输入:
集合A,二元关系集合R,幂次n
输出:
R的n次幂
要求:
尽量使运算的计算量最小
(2)关系闭包的计算
输入:
集合A,二元关系集合R
输出:
R的传递闭包t(R)
要求:
(a)采用Warshall算法(89页)
(b)编写代码判断输出t(R)为传递闭包
程序代码:
#include
#include
#include
usingnamespacestd;
typedefvector
classRelation{
vector
MatA;//关系矩阵
MatB;
MatC;
MatE;
MatD[100];//用来存储矩阵
intn;
public:
voidinputs();//将集合存入向量中
voidinputa();//将读入的关系转化为关系矩阵
voidprint();//输出关系矩阵
voidmi();
intWarshall();
};//定义类
intn,m;//全局变量,下文中使用
voidRelation:
:
inputs(){
cout<<"输入集合";
for(inta;cin>>a;){
s.push_back(a);
if(getchar()=='\n')
break;}
}//将集合存入向量中
voidRelation:
:
inputa(){//将读入的关系转化为关系矩阵
cout<<"输入关系";
inti,j,e,r;
for(i=0;i vector for(j=0;j intia=0; u.push_back(ia);} A.push_back(u); B.push_back(u); C.push_back(u); E.push_back(u); }//创建二维向量,初始化,是每个元素为0 for(inth,z;cin>>h>>z;){ if(h==0&&z==0) break; for(i=0;i if(s[i]==h)e=i; if(s[i]==z)r=i; } A[e][r]=1;B[e][r]=1; E[e][r]=1;//C[e][r]=1;//读入关系,将关系对应的矩阵中的位置元素变为1 if(getchar()=='\n') break; } } voidRelation: : print(){
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 离散数学 实验 关系 运算