欢迎来到天天文库
浏览记录
ID:57161270
大小:54.50 KB
页数:7页
时间:2020-08-04
《离散数学关系的闭包运算讲课稿.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、离散数学关系的闭包运算精品文档《离散数学》实验报告学院软件学院专业软件工程指导教师邹丽娜学号10008118姓名冯立勇提交日期2011-12-25实验二关系的闭包运算收集于网络,如有侵权请联系管理员删除精品文档一、实验目的熟悉关系的闭包运算,编程实现关系闭包运算算法。一、实验内容利用矩阵求解有限集上给定关系的自反、对称和传递闭包。三.实验过程1.算法分析:在三种闭包中自反和对称闭包的求解很容易,对矩阵表示的关系,其自反闭包只要将矩阵的主对角线全部置为1就可;对称闭包则加上关系的转置矩阵(逻辑加法);传递闭包则有两种算法(二选一即可):算法1
2、:直接根据计算,过程略。算法2:Warshall算法(1962)设R的关系矩阵为M(1)令矩阵A=M(2)置i=1(3)对所有的j,若A[j,i]=1,则对于k=1,2,…,n,令A[j,k]=A[j,k]+A[i,k]注:此处为逻辑加,可以使用运算符
3、
4、(4)i=i+l.(5)若i≤n,则转到(3),否则结束.开始声明各子函数输入关系矩阵输入zz=1;调用自反闭包函数z=2,调用对称闭包函数z=3调用传递闭包函数结束流程图收集于网络,如有侵权请联系管理员删除精品文档2.程序代码:#includevoidoutput(in
5、ts[][100]);voidzifan(ints2[][100]);voidduichen(ints2[][100]);voidchuandi2(ints2[][100]);voidchuandi1(ints2[][100]);voidaa();ints[100][100],z;intd,n,i,j;intmain(){aa();return0;}voidaa(){printf("请输入矩阵的行数(必须小于10)");scanf("%d",&n);printf("请输入矩阵的列数(必须小于10)");scanf("%d",&d);
6、printf("请输入关系矩阵");for(i=0;i7、case3:chuandi2(s);break;case4:duichen(s);break;}}voidoutput(ints[][100]){printf("所求关系矩阵为");for(i=0;i8、or(i=0;i1)s2[i][j]=1;}收集于网络,如有侵权请联系管理员删除精品文档output(s2);aa();}voidchuandi1(ints2[][100]){intm[100][100],a[100][100],k,h;intt[100][100];for(i=0;i9、d;j++){a[i][j]=0;t[i][j]=s2[i][j];m[i][j]=s2[i][j];}for(h=0;h1)t[i][j]=1;}}output(t);aa()10、;}voidchuandi2(ints2[][100]){intk;for(i=0;i
7、case3:chuandi2(s);break;case4:duichen(s);break;}}voidoutput(ints[][100]){printf("所求关系矩阵为");for(i=0;i8、or(i=0;i1)s2[i][j]=1;}收集于网络,如有侵权请联系管理员删除精品文档output(s2);aa();}voidchuandi1(ints2[][100]){intm[100][100],a[100][100],k,h;intt[100][100];for(i=0;i9、d;j++){a[i][j]=0;t[i][j]=s2[i][j];m[i][j]=s2[i][j];}for(h=0;h1)t[i][j]=1;}}output(t);aa()10、;}voidchuandi2(ints2[][100]){intk;for(i=0;i
8、or(i=0;i1)s2[i][j]=1;}收集于网络,如有侵权请联系管理员删除精品文档output(s2);aa();}voidchuandi1(ints2[][100]){intm[100][100],a[100][100],k,h;intt[100][100];for(i=0;i9、d;j++){a[i][j]=0;t[i][j]=s2[i][j];m[i][j]=s2[i][j];}for(h=0;h1)t[i][j]=1;}}output(t);aa()10、;}voidchuandi2(ints2[][100]){intk;for(i=0;i
9、d;j++){a[i][j]=0;t[i][j]=s2[i][j];m[i][j]=s2[i][j];}for(h=0;h1)t[i][j]=1;}}output(t);aa()
10、;}voidchuandi2(ints2[][100]){intk;for(i=0;i
此文档下载收益归作者所有