1 / 14
文档名称:

离散数学实验报告().doc

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

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

分享

预览

离散数学实验报告().doc

上传人:薄荷牛奶 2018/9/28 文件大小:116 KB

下载得到文件列表

离散数学实验报告().doc

文档介绍

文档介绍:《离散数学》实验报告
专业
网络工程
班级
姓名
学号
授课教师
二 O 一六年十二月
目录
实验一联结词的运算
实验二根据矩阵的乘法求复合关系
实验三利用warshall算法求关系的传递闭包
实验四图的可达矩阵实现
实验一联结词的运算

通过上机实验操作,将命题连接词运算融入到C语言的程序编写中,一方面加强对命题连接词运算的理解,另一方面通过编程实现命题连接词运算,帮助学生复****和锻炼C语言知识,将理论知识与实际操作结合,让学生更加容易理解和记忆命题连接词运算。

(1) 非运算, 符号:ù ,当P=T时,ùP为F, 当P=F时,ùP为T 。
(2) 合取, 符号: ∧, 当且仅当P和Q的真值同为真,命题P∧Q的真值才为真;否则,P∧Q的真值为假。
(3) 析取, 符号: ∨, 当且仅当P和Q的真值同为假,命题P∨Q的真值才为假;否则,P∨Q的真值为真。
(4) 异或, 符号: ▽, 当且仅当P和Q的真值不同时,命题P▽Q的真值才为真;否则,P▽Q的真值为真。
(5) 蕴涵, 符号: →, 当且仅当P为T,Q为F时,命题P→Q的真值才为假;否则,P→Q的真值为真。
(6) 等价, 符号: ↔, 当且仅当P,Q的真值不同时,命题P↔Q的真值才为假;否则,P→Q的真值为真。

编写一个程序实现非运算、合取运算、析取运算、异或运算、蕴涵运算、等价运算。
算法程序
#include<>
void main()
{
printf("请输入P、Q的真值\n");
int a,b;
scanf("%d%d",&a,&b);
int c,d;
if(a==1)
c=0;
else c=1;
if(b==1)
d=0;
else d=1;
printf("非P、Q的结果为%d,%d\n",c,d);
int e;
if(a==1&&b==1)
e=1;
else e=0;
printf("合取的结果为%d\n",e);
int f;
if(a==0&&b==0)
f=0;
else f=1;
printf("析取的结果为%d\n",f);
int g;
if(a==1&&b==0)
g=0;
else g=1;
printf("单条件的结果为%d\n",g);
int h;
if(a==b)
h=1;
else h=0;
printf("双条件的结果为%d\n",h);
}
内容格式:新罗马,五号,行间距固定值18磅


通过编程,学会了析取、合取、单条件连接词、双条件连接词的用法。
实验二根据矩阵的乘法求复合关系

复合运算是一种重要的二元关系运算,可用于二元关系的合成,二元关系的性质判断,二元关系传递闭包的运算等方面,通过编程实现二元关系的复合运算,帮助同学们理解复合运算的过程,复合形成新的二元关系中的序偶是如何产生的。

复合运算能由两个二元关系生成一个新的二元关系。
设X→Y(R关系),Y→Z(S关系),则称X→Z(R◦S关系)为R和S的复合关系,并规定为:R◦S={<x,z>|x∈X∧z∈Z∧∃y(y∈Y∧<x,y>∈R∧<y,z>∈S)}
关系可用矩阵表示,故复合运算也可用矩阵表示。设有三个集合:X={x1,x2…xm},Y={y1,y2…yn},Z={z1,z2…zp}, ,|X|=m, |Y|=n, |Z|=p,MR=[aik]m×n ,MS=[akj]n×p则复合关系R◦S的关系矩阵为:
MR◦S= MR◦MS=[cij] m×p
∨代表逻辑加,满足0∨0=0,0∨1=1,1∨0=1,1∨1=1
∧代表逻辑乘,满足0∧0=0,0∧1=0,1∧0=0,1∧1=1

将二元关系用关系矩阵表示,通过两个关系矩阵对应行列元素先进行逻辑乘,后进行逻辑加生成新的关系矩阵中的每一个元素。新的关系矩阵所对应的二元关系就是两个二元关系复合形成的,编程实现这一复合过程。

#include <>
int main()
{
int a[100][100],b[100][100],c[100][100],i,j,k,n;
printf("请输入集合X中元素个数:");
scanf("%d",&n);
printf("请输入关系矩阵Mr的格式:\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
}
printf("请输入关系矩阵Ms的格式: