您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 离散数学二元关系传递性判别、闭包方法实验报告
1离散数学二元关系传递性判别、闭包方法实验报告学院:理学院班级:11信息与计算科学1班姓名:***学号:*************一、实验目的1.通过上机程序,进一步加深对二元关系传递性判别,自反闭包,对称闭包,传递闭包的理解。2.掌握传递性判别,Warshall算法。3.学会用程序解决离散数学中的问题。4.增强我们编写程序的能力二、实验内容实验1:二元关系传递性判别实验2:有限集上给定关系的自反、对称和传递闭包(用Warshall算法)。三、实验环境在microsoftvisualc++实验环境下完成的,而所设计的程序也在这个环境下通过了编译,运行和测试。四、实验原理和实现过程实验1:#includeiostreamusingnamespacestd;voidmain(){intn,i,j,k;intm=0;//m是判断传递关系计数参数cout请输入矩阵的行列数n:;cinn;inta[20][20];for(i=1;i=n;i++){for(j=1;j=n;j++){cout请输入a[i][j]:;cina[i][j];}}//输入R矩阵coutR的关系矩阵为:endl;for(i=1;i=n;i++){for(j=1;j=n;j++){couta[i][j];2}coutendl;}//输出R矩阵for(i=1;i=n;i++){for(j=1;j=n;j++){if(a[i][j]!=0){for(k=1;k=n;k++){if(a[i][k]a[j][k]//利用布尔加的特征,前一行数大于后一行{m=m+1;//如果有一个数不成立,m加1}}}}}if(m==0)coutR有传递关系endl;elsecoutR没有传递关系endl;}实验2:1)自反闭包#includeiostreamusingnamespacestd;voidmain(){intn,i,j;cout请输入矩阵的行列数n:;cinn;inta[20][20];for(i=1;i=n;i++){for(j=1;j=n;j++){cout请输入a[i][j]:;cina[i][j];}}coutR的关系矩阵为:endl;3for(i=1;i=n;i++){for(j=1;j=n;j++){couta[i][j];}coutendl;}for(i=1;i=n;i++){for(j=1;j=n;j++){if(a[i][j]!=0){a[i][i]=1;a[j][j]=1;//把符合条件的对角线上的值改为1}}}coutR的关系矩阵为:endl;for(i=1;i=n;i++){for(j=1;j=n;j++){couta[i][j];}coutendl;}}2)对称闭包#includeiostreamusingnamespacestd;voidmain(){intn,i,j;cout请输入矩阵的行列数n:;cinn;inta[20][20];for(i=1;i=n;i++){for(j=1;j=n;j++)4{cout请输入a[i][j]:;cina[i][j];}}coutR的关系矩阵为:endl;for(i=1;i=n;i++){for(j=1;j=n;j++){couta[i][j];}coutendl;}for(i=1;i=n;i++){for(j=1;j=n;j++){if(a[i][j]!=0){a[j][i]=1;//对称元素的值改为1}}}coutR的对称闭包矩阵为:endl;for(i=1;i=n;i++){for(j=1;j=n;j++){couta[i][j];}coutendl;}}3)传递闭包#includeiostreamusingnamespacestd;voidmain(){intn,i,j,k;intm=0;5cout请输入矩阵的行列数n:;cinn;inta[20][20];for(i=1;i=n;i++){for(j=1;j=n;j++){cout请输入a[i][j]:;cina[i][j];}}coutR的关系矩阵为:endl;for(i=1;i=n;i++){for(j=1;j=n;j++){couta[i][j];}coutendl;}for(j=1;j=n;j++){for(i=1;i=n;i++){if(a[i][j]==1){for(k=1;k=n;k++){a[i][k]=a[i][k]+a[j][k];//warshall方法if(a[i][k]==2)a[i][k]=1;//规范布尔加}}}}coutR的传递闭包矩阵为:endl;for(i=1;i=n;i++){for(j=1;j=n;j++){couta[i][j];}coutendl;}6}五、实验输入输出和数据实验1:1)输入没有传递关系的关系矩阵R2)输入课本P30/例2.67实验2:1)自反闭包82)对称闭包93)传递闭包P52/例2.13六、实验体会通过这次的实验,使我明白了,平日里学习不能浅尝辄止,必须要知道它的方法。做这次实验前我以为我对这块知识已经很熟了,但实际做的时候,发现我还是不是特别懂,必须要反复看书。其次,让我知道了,我平时学的数学知识可以很好的跟计算机结合,让我对程序设计有了更好的人是。
本文标题:离散数学二元关系传递性判别、闭包方法实验报告
链接地址:https://www.777doc.com/doc-7287005 .html