您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > 12计算机科学与技术离散实验
编程判断一个二元关系的性质(是否具有自反性、反自反性、对称性、反对称性和传递性)组长:朱家春学号:02124068成员:周阳学号:02124069成员:蔡香西学号:02124069成员:王鹏学号:02124071一、前言引语:二元关系是离散数学中重要的内容。因为事物之间总是可以根据需要确定相应的关系。从数学的角度来看,这类联系就是某个集合中元素之间存在的关系。二、数学原理:自反、对称、传递关系设A和B都是已知的集合,R是A到B的一个确定的二元关系,那么集合R就是A×B的一个合于R={(x,y)∈A×B|xRy}的子集合设R是集合A上的二元关系:自反关系:对任意的x∈A,都满足x,x∈R,则称R是自反的,或称R具有自反性,即R在A上是自反的(x)((x∈A)→(x,x∈R))=1对称关系:对任意的x,y∈A,如果x,y∈R,那么y,x∈R,则称关系R是对称的,或称R具有对称性,即R在A上是对称的(x)(y)((x∈A)∧(y∈A)∧(x,y∈R)→(y,x∈R))=1传递关系:对任意的x,y,z∈A,如果x,y∈R且y,z∈R,那么x,z∈R,则称关系R是传递的,或称R具有传递性,即R在A上是传递的(x)(y)(z)[(x∈A)∧(y∈A)∧(z∈A)∧((x,y∈R)∧(y,z∈R)→(x,z∈R))]=1三、实验原理:通过二元关系与关系矩阵的联系,可以引入N维数组,以数组的运算来实现二元关系的判断。图示:性质关系矩阵特性自反性主对角线元素全为1反自反性主对角线元素全为0对称性对称矩阵反对称性非主对角线上的元素等于1且与之对称的元素等于0传递性矩阵(M*M)中1所在的位置,M中与之相对应位置鲜红都为1四、实验环境:Windows7UltimateDEVC++五、实验语言:C语言六、程序源代码:#includestdio.h#defineN4main(){inti,j,k;intf,e,z;intM[N][N];printf(判断R是否为自反关系、对称关系、是否可传递?\n);printf(请输入一个4*4的矩阵。\n);for(i=0;iN;i++)/*输入一个4*4的矩阵*/for(j=0;jN;j++)scanf(%d,&M[i][j]);for(i=0;iN;i++){for(j=0;jN;j++)printf(%4d,M[i][j]);printf(\n);}for(i=0;iN;i++){if(M[i][i]==1)//判断自反性{if(i=N-1e=0;else;}elseif(M[i][i]==0)//判断反自反性{if(i=N-1)e=1;else;}else{e=2;break;}}for(i=0;iN;i++){for(j=0;jN;j++)if(M[i][j]!=M[j][i])//判断对称性{f=1;break;}}for(i=0;iN;i++){for(j=0;jN;j++)if(M[i][j]==1)//判断反对称性{if(M[j][i]==0){if(i==(N-1)&&j==N-1)f=0;elsebreak;}}}if(f!=0&&f!=1){f=2;}for(i=0;iN;i++)//判断可传递性for(j=0;jN;j++)if(M[i][j]==1)continue;elsefor(k=0;kN;k++)if(M[i][k]*M[k][i]==0)continue;elsez=0;if(e==0)printf(关系R是自反关系\n);elseif(e==1)printf(关系R是反自反关系\n);elseif(e==2)printf(关系R是反自反关系\n);if(f==0)printf(关系R是反对称关系\n);elseif(f==1)printf(关系R不是对称关系\n);elseif(f==2)printf(关系R是对称关系\n);if(z==0)printf(关系R是不可传递关系\n);elseprintf(关系R是可传递关系\n);system(PAUSE);}七、程序运行截图:i、程序启动截图:ii、程序输入截图:iii、程序运行结果截图:参考文献:(1)谭浩强c语言程序设计清华大学出版社。(2)耿素云离散数学北京高等教育出版社。(3)郭建二元关系几种闭包求取方法分析。组员评分:朱家春:95王鹏:95周阳:80蔡香西:80工作任务分配朱家春:查找资料编写程序。王鹏:编写程序与分析。周阳:检查错误与分析。蔡香西:分析与总结。
本文标题:12计算机科学与技术离散实验
链接地址:https://www.777doc.com/doc-5896071 .html