离散数学实验报告()

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《离散数学》实验报告

专业网络工程

班级

姓名

学号

授课教师

二 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 ∈X ∧z ∈Z ∧∃y(y ∈Y ∧∈R ∧∈S)}

关系可用矩阵表示,故复合运算也可用矩阵表示。设有三个集合:X={x 1,x 2…

x m },Y={y 1,y 2…y n },Z={z 1,z 2…z p }, Z Y X S

R −→−−→−,|X|=m, |Y|=n, |Z|=p,M R =[a ik ]m ×n ,M S =[a kj ]n ×p 则复合关系R ◦S 的关系矩阵为:

M R ◦S = M R ◦M S =[c ij ] m ×p )(1kj

ik n k ij b a c ∧=∨= ∨代表逻辑加,满足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

{

for(j=0;j

scanf("%d",&a[i][j]);

}

printf("请输入关系矩阵Ms的格式:\n");

for(i=0;i

{

for(j=0;j

scanf("%d",&b[i][j]);

}

for(i=0;i

{

for(j=0;j

for(k=0;k

c[i][k]=1;

}

for(i=0;i

{

for(j=0;j

if(c[i][j]!=1)

c[i][j]=0;

}

printf("\n");

printf("关系矩阵Mr和Ms的复合运算结果是:\n");

for(i=0;i

{

for(j=0;j

printf("%d ",c[i][j]);

printf("\n");

}

return 0;

}

五.实验结果

实验结果截图大小为:宽(10cm)×高(8cm)

相关文档
最新文档