




免费预览已结束,剩余6页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验2 关系的运算(1) 关系的幂运算输入:集合A,二元关系集合R,幂次n输出:R的n次幂要求:尽量使运算的计算量最小(2) 关系闭包的计算输入:集合A,二元关系集合R输出:R的传递闭包t(R)要求:(a) 采用Warshall 算法(89页)(b) 编写代码判断输出t(R)为传递闭包程序代码:#include#include#includeusing namespace std;typedef vector vector Mat;class Relationvectors;/集合Mat A;/关系矩阵Mat B;Mat C;Mat E;Mat D100; /用来存储矩阵int n;public:void inputs();/将集合存入向量中void inputa();/将读入的关系转化为关系矩阵void print();/输出关系矩阵void mi();int Warshall(); ;/定义类int n,m;/全局变量,下文中使用void Relation:inputs()couta;)s.push_back(a);if(getchar()=n)break;/将集合存入向量中void Relation:inputa()/将读入的关系转化为关系矩阵cout输入关系;int i,j,e,r;for(i=0;is.size();i+)vector u;for(j=0;jhz;) if(h=0&z=0)break;for(i=0;is.size();i+)if(si=h) e=i;if(si=z) r=i;Aer=1;Ber=1;Eer=1;/Cer=1;/读入关系,将关系对应的矩阵中的位置元素变为1if(getchar()=n)break;void Relation:print()for(int i=0;is.size();i+)for(int j=0;js.size();j+)coutAij ;coutn; /读入幂次if(n=0) /0次幂for(int k=0;ks.size();+k)for(int j=0;js.size();+j)if(k=j)cout1 ; /对角线上元素为1elsecout0 ;coutendl;elsefor(i=1;in;+i)for(int h=0;hs.size();+h)for(int d=0;ds.size();+d)int m=0;for(int x=0;x1)for(a=0;as.size();+a)for(b=0;bs.size();+b)if(Cab!=D0ab) break;if(b!=s.size()break; /检验是否重复if(a=s.size()&b=s.size()break;/重复则跳出不再幂乘for(int k=0;ks.size();k+)for(int j=0;js.size();j+)Bkj=Ckj;Di-1=B;c=i;if(a=s.size()&b=s.size()int q;q=(n-i)%c; /找出结果位置if(q=0) q=c;for(int e=0;es.size();e+)for(int f=0;fs.size();f+)coutDq-1ef ; /输出coutendl;return;else/1次幂for(int h=0;hs.size();h+)for(int n=0;ns.size();n+)coutBhn ;coutendl;int Relation:Warshall()for(int i=0;is.size();+i)for(int j=0;js.size();+j)if(Aji=1)for(int k=0;ks.size();+k)Ajk=Ajk+Aik;if(Ajk!=0&Ajk!=1)Ajk=1;print();int a=1;int b=1;/for(int p=0;ps.size();+p)for(int l=0;ls.size();+l)if (Apl=0)for (int x=0;xs.size();+x)if(Apx*Axl=1)a=0;if(a=0)coutwrong!endl;elsefor(int p=0;ps.size();+p)for(int l=0;ls.size();+l)if(Apl=1&Epl=0)Apl=0; /再判断传递性for(int p=0;ps.size();+p)for(int l=0;ls.size();+l)if (Apl=0)for (int x=0;xs.size();+x)if(Apx*Axl=1)b=0;if(b=1)coutwrong!endl;return 0;Apl=1;coutright!endl;/return 1;void mai
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论