偏序集中盖住关系的求取和格论中有补格的判定分解_第1页
偏序集中盖住关系的求取和格论中有补格的判定分解_第2页
偏序集中盖住关系的求取和格论中有补格的判定分解_第3页
偏序集中盖住关系的求取和格论中有补格的判定分解_第4页
偏序集中盖住关系的求取和格论中有补格的判定分解_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、力普实验报告(/学年第一学期)课程名称离散数学实验名称偏序集中盖住关系的求取和格论中有补格的判定实验时间年 月 日指导单位指导教师学生姓名班级学号学院(系)专业实验报告实验名称偏序集中盖住关系的求取和格论中有补格的判定指导教师实验类型上机实验实验学时4实验时间一、实验目的和要求能正确求出任意偏序集的盖住关系的集合,并且能正确判定任意 偏序集是否为格,如果是格,判定其是否为有补格。二、实验环境(实验设备)硬件:PC机。软件:Code: :Blocks (C+ )三、实验原理及内容内容一求盖住关系:首先输入偏序集所对应的全集中的元素个数以及各个元素,屏幕输出该全集以便使用者观看,然后输入偏序集中的

2、各个元素,程序调用求取偏序集的盖住关系的函数,在屏幕输出该盖住关系1数和判断是查为有1,若继续使用怎清判断是查遇杳为有补施期用判断最查为假的区 补格的函数分别判断并输出,结束之后询问是否继续使月展再循此二次_。_原理J建立二个元素类用来保在元素2一定义求灌住关系的函数和判断是查 为播和差查为直补格的函数在主函数史建立二仝钮数组保存全集2一建立 二企对象数组保查佩匠集遇用函数并揄出£程序:#include <iostream>#include <windows.h>using namespace std; class element(private:int le

3、ft;int right;public:element();element(int a,int b);element。;int Getleft();int Getright(););element: :element()left=O;right=O;)element:element(int a,int b)(left=a;right=b;)int element:Getleft()(return left;)int element:Getright()(return right;)bool Judge_l(int a,int b,element p,int n)判断元素是否在偏序集中 (for

4、(int i=0;i<n;i+)(if(pi.Getleft()=a&&pi.Getright()=b)return true;)else(continue;)return false;)void Judge_2(element p,int m,int a,int n,element q,int &k)获得盖住关系(int i,j;for(i=0;i<m;i+)(if(pi.Getleft()=pi.Getright()(continue;)for(j=0;j<n;j+)(if(Judge_l(pi.Getleft(),a|j,p,m)&&am

5、p;Judge_l(aj,pi.Getright(),p,m)&&aj !=pi.Getleft()&&aj !=pi.Getright()(break;)if(j=n)(qk+=pi;)void Print(element a,int n)输出集合(cout«"";for(int i=0;i<n;i+)(if(i!=n-l)(cout«'V')cout«M"«endl;)bool Judge_3(int a,int m,int b,int n)判断两个数组中是否存在相同

6、的元素,用于判断是否为格的函数(for(int i=0;i<m;i+)(for(int j=O;j<n;j+)(if(ai=aU)(return true;)return false;)bool Judge_ge(int a,int m,element p,int n)判断偏序集是否为格for(int i=O;i<m;i+)for(int j=O;j<m;j+)int r,s;for(r=0;r<m;r+)if(Judge_l(ai,ar,p,n)&&Judge_l(aj,aH,p,n)break;for(s=0;s<m;s+)if(Judg

7、e_l(as,ai,p,n)&&Judge_l(as,aj,p,n)break;if(r=mlls=m)(return false;)return true;)bool Judge_quanxiajie(int a,int m,element p,int n,int &down)判断格是否有全下界(int i,j;for(i=0;i<m;i+)(for(j=0;j<m;j+)(if(Judge_l(ai,aj,p,n)continue;)else(break;)if(j=m)(down=ai;return true;)return false;)bool J

8、udge_quanshanjie(int a,int m,element p,int n,int &up)判断格是否有全上界(int i,j;for(i=0;i<m;i+)(for(j=0;j<m;j+)(if(Judge_l(aj,ai,p,n)continue;)else(break;)if(j=m)(up=ai;return true;)return false;)bool Judge_youjiege(int a,int m,element p,int n,int &up,int &down)判断格是否为有界格(if(Judge_quanxiajie

9、(a,m,p,n,down)&&Judge_quanshangjie(a,m,p,n,up) return true;)return false;)void Up_and_down(int x,int y,int a,int m,element p,int n,int &ss,int &xx) 求有界格中x和y组成的集合的最小上界和最大下届,用于判断有界格的 函数(int k=O,j=O;int *s=new intk;储存上界的数组int *r=new intfj;储存下界的数组for(int i=0;i<m;i+)(if(Judge_l(x,ai,p,

10、n)&&Judge_l(y,ai,p,n)(sk+=ai;)if(Judge_l(ai,x,p,n)&&Judge_l(ai,y,p,n)(rj+=ai;)int h;for(int i=O;i<k;i+)(for(h=0;h<k;h+)(if(Judge_ 1 (s i,sh ,p,n)(continue;)else(break;)if(h=k)(ss=si;)for(int i=0;i<j;i+)for(h=0;h<j;h+)(if (J udge_ 1 (r h ,r i ,p,n)(continue;)else(break;)if

11、(h=j)(xx=ri;)bool Judge_youbuge(int a,int m,element p,int n)(int up,down,ss,xx;/up 为全上界,down 为 全下界if(Judge_ge (a,m,p,n)&&Judge_youjiege(a,m,p,n,up,down)in";for(int i=O;i<m;i+)(for(j=0;j<m;j+)if(i=j)(continue;)else(Up_and_down(ai,aj,a,m,p,n,ss,xx);if(ss=up&&xx=down)(break;)

12、if(j=m)(return false;)return true;)else(return false;)int main()(int flag=l;while(flag=l)(system(Hclsn);cout<<”欢迎使用! M«endl«endl;int number 1;cout<<”请输入全集中元素的个数:cin»number 1;int *all=new intnumber;cout<<”请输入全集中的各个元素: for(int i=O;i<number_l ;i+)cin»alli;)cout&

13、lt;<"你输入的全集为:"«nu;for(int i=O;i<number_l ;i+)(cout«alli;if(i!=number_l-l)(cout«";')cout«""«endl;int number 2;coutcvendkc”请输入偏序集中元素的个数:cin»number 2;element *pianxu=new elementnumber_2;cout<<”请输入偏序集中的每个元素:,r«endl«endl; fo

14、r(int i=0;i<number_2;i+)(int a,b;cin»a»b;pianxui=element(a,b);)cout«endl«"你输入的偏序集为:";Print(pianxu,number_2);int number 3=0;element *cov=new elementnumber_3;Judge_2(pianxu,number_2,all,number_ l,cov,number_3);cout«endl<<"盖住关系为:”;Print(cov,number_3);if(

15、!Judge_ge(all,nuinber_l,pianxu,number_2)(cout<<endk<"此偏序集不是格! "vvendl;)elseif(Judge_youbuge(all,number_hpianxu,number_2)(cout«endl<v”此偏序集是格,且为有补格! "vvendl;)else(coutv<endl«,3ls偏序集是格,但是不是有补格! n«endl;)coutv<endl<<”是否继续使用?(继续使用请输入1,否则输入0): cin»

16、flag;return 0;流程图:2举例使用:1、偏序集不是格的例子/D:codeblocks文件,离散实/三、偏序集中羞住关系的求取和格论中有补格的判定.e- X请输入全集中元素的个数:3 请输入全集中的各个元素:1 2 3 你输入的全集为:1,2,3请输入偏序集中元素的个数:可D:edeblocks文件滴歆实验三褊序集中盖住关系的求取和格论中有补格的判定.e一育输入全集中元素的个数:3育输入全集中的客个元表:1 2 3尔输入的全集为:1,2,3元素的个数:5 的每个元素:12 3 3 3尔输入的偏序集为:<2, 2>, <3, 3>, <1, 3>,

17、<2, 3>?(继续使用请输入L否则输入0:22、偏序集是格但不是有补格的例子10 D:edeblocks文件函散实验三偏序集中盖住关系的求取和格论中有补格的判定.e一 J 数素,3 个元,2 物个U 素备: 元的为 中中集 集集全 全全的 入入人 输输输 青青尔2请输入偏序集中元素的个数:Q D:edeblocks文件函散实脸三'偏序集中盖住关系的求取和格论中有补格的判定.e一请输入全集中元素的个数:3请输入全集中的各个元素:1 2 3 你输入的全集为:1,2,3请输入唐瑞入元素的仝数:6 的每个元素:123121123233你输入的偏序集为:<1,1), <

18、2, 2>, <3, 3>, <1, 2>, <2, 3>, <1, 3>盖住关系为:<1,2, 2, 3此偏序集是格,但是不是有补格!是否继续使用?(继续使用请输入L否则输入0:210 D:edeblocks文件函散实验三偏序集中盖住关系的求取和格论中有补格的判定.e一 , 数素,3 个元,2 物个U 素备: 元的为 中中集 集集全 全全的 入入人 输输输 青青尔41 26)请输入偏序集中元素的个数:J D:ccdeblocks文件箍散实验三褊序集中盖住关系的求取和格论中有补格的判定.e- X你输入的全集为:”,2,3,6)请输入偏序集中元素的个数:9 请输入偏序集中的每个元素:123611123123623666你输入的偏序集为:<1,1>, <2, 2>, <3, 3>, <6, 6>, &l

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论