1 / 22
文档名称:

离散数学实验报告 四个实验!!!.docx

格式:docx   大小:181KB   页数:22页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

离散数学实验报告 四个实验!!!.docx

上传人:guoxiachuanyue008 2022/6/25 文件大小:181 KB

下载得到文件列表

离散数学实验报告 四个实验!!!.docx

相关文档

文档介绍

文档介绍:《离散数学》
课程设计
学院计算机学院
学生姓名
学号
指导教师
评阅意见
提交日期2011年11月25日
引言
《离散数学》是现代数学的一个重要分支,也是计算机科学与技术,电子信息技术,生物技术等的核心基础课程。它是][k]*M[k][i]==0)
continue;
else
z=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");else
printf("关系R是可传递关系\n");
system("PAUSE");
}
七、程序运行截图:
i、程序启动截图:
ii、程序输入截图
0
a
H
0
0
6@
1
iii、程序运行结果截图:
・"II咅皿酣mini卅如内门并叶沦丸&晶越丰烏年至R昱否诗白冃時耳时爲Fig耳可曲#.1心卅回-・Srt
八、实验总结:实验简洁高效地判断二元关系的性质。
实验二、编程求一个二元关系的自反闭包、对称闭包、
传递闭包
一、前言引语
一个二元关系可能具有某种性质,也可能不具有这种性质。现在讨论怎样使一个二元关系变成具有指定性质的新关系,并且还要满足最小性条件。
二、数学原理
自反闭包、对称闭包、传递闭包
设R是定义在A上的二元关系,若存在A上的关系R'满足:
1)R'是自反的(或对称的、或可传递的),
2)RcR',
3)对A上任何其它满足1)和2)的关系R〃,都有:R'匸R〃。
则称R'为R的自反闭包(或对称闭包、或传递闭包),分别记为r(R)、(s(R)和t(R))。
三、实验原理
Warshall算法的基本思想
对每个结点(从第一列开始),找出所有具有到此结点的有向边的结点(即该列中元素为1的所在行的结点),再将这些结点所在行同该结点所在行进行逻辑加后作为这些结点所在的新行(添加新的有向边)(反映了如果这些结点没有到其它结点的有向边,但有到该结点的有向边,再通过该结点间接到达其它结点,根据传递闭包的定义,这些结点就必然有一条有向边到达其它结点)。
设R是集合上的二元关系,Mr是R的关系矩阵
・⑴置新矩阵A:=Mr
(2)置(列)j:=1
・(3)对所有的i(lWiWn)
如A(i,j)=1,则对k=1,2,...,n
A(i,k):=A(i,k)A(j,k)
・(即将A的第i行与A的第j行进行逻辑加后送回A的第i行)
(4)j:=j+1
・(5)如jWn转⑶,否则停止。
四、实验环境:Windows7UltimateDEVC++
五、实验编程语言:C语言
六、实验程序源代码
//sourcefile:
#include<>
voidWar(intm,intn)
{
inti,j,k;设置临时变量
inta=0,b=0;设置临时变量
intarr[10][10];
for(a=0;a<m;++a)
{
printf("请输入矩阵第%d行元素:",a);
for(b=0;b<n;++b)
{
scanf("%d",&arr[a][b]);
}
printf("\n");
}
for(i=0;i<m;i++)
{
for(j=0;j<m;j++)
{
if(arr[j][i]==1)
{
for(k=0;k<n;k++)
{
arr[j][k]=arr[i][k]||arr[j][k];
}
}
}
}
printf("所得的可传递闭包关系矩阵是:\n");
for(i=0;i<m;++i)
{
for(j=0;j<n;++j)
{
printf("%d",arr[i][j]);
}printf("\n");
}
}
//file:
#>
voidmain()
{
printf("利用Warshall算法求二元关系的可传递闭包\n");voidWar(int,int);
intm,n;
printf("请输入矩阵的行数(必须小于10):");scanf("%d",&m);
printf("请输入矩阵的列数(必须小于10):");scanf("%d",&n);
War