2023年安徽工业大学离散数学实验报告.pdf
离散数学实验报告专业 软件工程班级163班姓 名 周掌珍学号授课教师杨思春二。一 七 年 六 月目录实验一联结词的运算实验二集合的运算实验三二元关系的性质鉴定实验四 图的矩阵运算实验一联结词的运算一.实验目的通过上机实验操作,将命题连接词运算融入到C语言的程序编写中,一方面加强对命题连接词运算的理解,另一方面通过编程实现命题连接词运算,帮助学生复习和锻炼c 语言知识,将理论知识与实际操作结合,让学生更加容易理解和记忆命题连接词运算。二.实验原理(1)非运算,符号:1,当 P=T时,p 为 F,当 P=F时,1P为 T。(2)合取,符号:A,当且仅当P 和 Q的真值同为真,命题PAQ的真值才为真;否则,PAQ的真值为假。(3)析取,符号:V,当且仅当P 和 Q的真值同为假,命题PVQ的真值才为假;否则,P V Q 的真值为真。(4)异或,符号:,当且仅当P 和 Q 的真值不同时,命题P V Q 的真值才为真;否则,PVQ的真值为真。(5)蕴涵,符号:一,当且仅当P 为 T,Q 为 F 时,命题P-Q 的真值才为假;否则,P-Q 的真值为真。(6)等价,符号:一,当且仅当P,Q的真值不同时,命题P-Q 的真值才为假;否则,P-Q 的真值为真。三.实验内容编写一个程序实现非运算、合取运算、析取运算、异或运算、蕴涵运算、等价运算。四.算法程序内容格式:新罗马,小五号,行间距固定值18磅#i n c 1 u d e i n t m a i n ()c h a r m;i n t P,Q;p r i n t f(请输入P,Q的真值与逻辑连接词:(P逻辑联结Q)n a :与 t b:或 t c(请先输入0):非 t d :蕴含 t e :等价 t f:异或 n );s c a n f (%d%c%dH,&P,&m,&Q);s wi t c h(m)c a s e z a :。i f (P=1&Q =1 )p i n t f(P 与 Q =l n ”);o。e 1 s e p r i n t f (p 合取 Q=0 n );b r e a k ;-c a s e b i f (P=0&Q=0)p r i n t f (P 或 Q=0 n );。笛 1 s e p r i n t f (P 或 Q=1 n );b r e a k;y a s e c :i f(P=l)p r i n t f (非 P=0 n );g g c 1 s e p r i n t f (非 P =1 n );b r c a k;o c a s e d i f(P=l&Q=O)p r i n t f(P 蕴含 Q =0 n );g e l s e p r i n t f (P 蕴含 Q=l n );b r e a k;o c a s e e ,i f (P =Q)p r i n t f (P 等价 Q=l n *);g。e 1 s e p r i n t f (P 等价 Q=0 n );b r e a k;o c a s e f :o o i f (P 二 二 Q)p r i n t f (P异或Q=0n”);d e l s e p r i n t f (nP 异或 Q=l nH);b r e a k;0)五.实验结果实验结果截图大小为:宽(1 0 cm)乂高(8011)r*C:UsersAdministratorDesktopDebug0.exeany key to continueIb l,或。=1l e s s:等价f:异或六.心得体会内容格式:宋体,五号,行间距固定值1 8磅实验二集合的运算一.实验目的集合运算重要涉及并运算,交运算,相对差,对称差运算,集合论的语言适合于描述和研究离散对象及其关系,所以也是计算机科学与工程的理论基础,在程序设计、关系数据库、排队论、开关理论,形式语言和自动机理论等学科领域中都有重要的应用。集合运算是学习集合论的基础,通过编程实现集合的相关运算,帮助同学们学好集合论相关知识打下基础。二.实验原理交运算:任何二个集合A和 B的交集An B 是由A和 B所共有的所有元素构成的集合,即:ACB=x|x G AA x e B并运算:A、B 是任意二个集合,A和 B的并集A UB是由A和 B 的所有元素构成的集合。即:AUB=x|xeAVxe B相对差:设 A和 B是二个任意集合,B对A 的相对差(A-B)是由属于A 且不属于B 的所有元素组成的集合。即:AB=x|XG A AxgB=x|xeAA-ixeB)对称差:设A、B是任意二集合,A 和 B 的环和记作AB。即:AGB=(A-B)U(BA)=(ACTB)U(BA A)或者 xe(A B)oxex I xeAVxeB)三.实验内容进一步理解集合的四种基本运算,根据每个运算定义,编程实现各个运算。四.算法程序内容格式:新罗马,小五号,行间距固定值18磅交集运算:#i n c 1 u dei n t main()int a 10 b 10,c 20,i,m,n,j,k=0;叩r in t f(请输入集合A,集合B中的元素个数:n);oscanf(%d%d”,&m,&n);prin t f(请输入集合A的元素:n);ofor(i=0;i m;i+)s c a nf(%dn,&a|i);op r i ntf(请输入集合B的元素:、n”);ofor(i=0;in;i+)gs c a n f(%dn,&b i );叩r i n t f(A=n);g f or(i=0;im;i+)-pr i n t f(%d;,a i);putch a r(b);gprintf(nn);prin t f(”B=);ofor(i=0;in;i+)p rin t f(d,”,b i);putchar(b);加 r intf(,nH);f or(i=0;im;i+)f o r(j=0;j n;j+)i f(a i =b j 1)c k+=a i ;叩ri ntf(”AAB=();for(i=0 ;i k;i+)。p r i n t f(%d,,c i );oputc h a r(b );叩ri n t f(nH);)并集运算:#i n c lud e i n t ma i n()(i nt a 1 0 ,b 1 0 ,c 2 0 ,i,m,n J,k=0 ;叩r i ntf(请输入集合A,集合B中的元素个数:n);o s ca nf(”%d%d”,&m,&n);叩ri n t f(请输入集合A的元素:n );ofb r(i =0;i m;i +)a s c a nf(d”,&a i );p r i ntf(请输入集合B的元素:nH);for(i=0;i n;i+)sc a nf(%d ,&b i );p r i ntf(nA=n);g fo r(i=0 ;i m;i+)。叩 r i ntf(n%d,a i );叩utc h a r C b );p r i nt f(nM);opr i ntf(B=);g f or(i =0;i n;i+)p r i ntf(%d,b i );p u t c h a r(1 b );g pri n t f()n );0o f o r(i=0;i m;i+)g c k+=a i|;d b r(j=O;jV n;j+)Ug f o r(i =0;i m;i+)g“f(b j 1=c i )b r e a k;g i f(i=m)c k+=b j ;。opri ntf(A U B=);8 fo r(i =0;i k;i +)p ri nt f(H%d ,,c i );g pu t c h a r(b );pri ntf(nM);1相对差:#i n c lud ei nt m a i n()(。i n t a 1 0 ,b 1 0 ,c 2 0 ,i,m,n,j,k=O,t;qp r i n t f(请输入集合A,集合B中的元素个数:n);sc a n f(%d%d ”,&m,&n);opr i ntf(请输入集合A的元素:n”);ffor(i=0;i m;i+)。sc a nf(%d ,&a E i );o p ri n tf(H请输入集合B的元素:n”);efb r(i=0 ;i n;i +)g sc a n f(M%dn,&b i );叩ri n tf(A=);of o r(i =0;i m;i +)oopri ntf(%d a i );o p u t c h a r(W);。p ri n t f(n”);pri n tf(B=n);g fb r(i=0;i vn;i+)。叩ri ntf(d j,b i );。p utc h a r(b );。p r i ntf(n );0of o r(i =0;i vm;i+)a c k+=a i ;for(j=0 ;j n;j+)(。f o r (i=0;i m;i +)。i f(b|j=c i )0 0 0 13 8 f or(t=i;t k;t+)0 0 8 0 8 0 C t =C t +1 ;Ik-;009)p r i ntf(A-B=(”);oof o r(i =0;i k;i+)ap ri ntf(n%d,n,c L i );。p ut c h a r(,b/);o p ri ntf(n);)对称差:#i nc 1 ud ei nt m a i n()(o i n t a|1 0 ,b l 0 ,c 2 0 ,c l 2 0 ,c 2 2 0 ,i,m,n,j,k l=O,k 2 =0 ,k=0,t;叩ri ntf(请 输 入 集 合os c a n f(%d&b|i );叩ri ntf(A=);。f or(i =0;i m;i+)。叩 r i ntf(”d,a i );。叩utc h a r(z b );叩ri nt f(n);P r i n tf(H B=);of o r(i=0 ;i n;i +)。叩 ri ntf(H%d,b i );Mp utc h a r(b );pri nt。n);ofb r(i=0;i m;i+)c l k 1 +=a i ;fb r(j=0 ;jvn;j+)。o f o r(i =0 ;i m;i +)。i f(b|j=c l i )d o。f or(t=i ;t k 10 0 0 (8。C 1 t=C 1 t+1 ;O O d jo k 1;0 0 0|If or(j=O;jnj+)。笛2 k 2+=b j ;fi fb r(j=0;j vm;j+)。o for(i =0;i n;i+);t+)i f(a j =c 2 i )gg f o r(t=i;t k 2;t+)gg 80 c 2 t=c 2 t+1 ;ggk 2 ;for(i=0;i kl;i+)c k+=c 1 Ei;of or(j=0;jk2;j+)。odf o r(i=0;i k 1 ;i+)。if(c 2 j=ci)b re a k;if(i=k l)c k+=c 2 j;。sprint f(A B=);。for(i=O;ik;i+)。opnntf(%d;;c i);oap u tch a r(br);pr i n tf (,nn);I五.实验结果实验结果截图大小为:宽(1 0 c m)X高(8 c m)交集运算:C:UsersAdministratorDe5ktopDebug0.exe*1请输入集合A ,集合B中的元素个数:请输入集合A的元素:1 2 3 4请输入集合B的元素:2 3 4 5 6A=,2 3 4)B=2 3 4,5,6)AP|B=2,3,4)Press any key to continue并集运算*C:U se rsAdmi n i stratorDe s ktopDe b u gO.exe请输入集合A,集合B中的元素个数:3 4请输入集合A的元素:1 2 3请输入集合B的元素:3 4 5 6A=1,2,3)B=3 4 5-6)AljB=Press any key to continue相对差运算C:UsersAdministratorDesktopDebug0.exe请输入集合*集合B中的元素个数:请输入集合A的元素:1 2 3 4请输入集合B的元素:3 4 5 6 7A=B=3 4 5,6,7)A-B=G R (x*y),若任e R ,则称R是反对称关系。传递性质:设 R为定义在集合X上的二元关系,假如对于任意的x,y ,z C X ,每当x R y,yRz时就有x R z,称关系R在 X上是传递的。三.实验内容编程输入一个集合以及该集合上的一种二元关系,判断该二元关系具有哪些性质。四.算法程序内容格式:新罗马,小五号,行间距固定值1 8 磅#i n c 1 ud ei n t m,n,i ,j,k;i n t X 2 0 ,R 2 0 ;voi d z i f a n()(k=0;4 o r(i=0;i m;i+)。for(j=0;j 2*n;j=j+2)oi f(R j=R|j+ll&R j=X i )k+;f(k=m)pr i nt f(R 具有自反性 n);A f(k=0)pri n t f(0 R具有反自反性 n );1v oi d d ui c h e n()。k=0;4 o r(j =0;j 2*n;j=j+2)for(i=0;i 2 *n;i =i +2)g g i f(R j=R i+l&R j+l=R i )k+;“f(k=n)pri n t f(R 具有对称性 n );i f(k=0 )p r i ntf(R 具有反对称性 n);1v o id c h ua n d i ()(o i nt s;f or(j=0;j 2*n;j=j+2)(“for(i=0 ;i 2*n;i=i+2)i f(R|j4-l=R i )g g k=0;。fb r(s=O;s 2*n;s=s+2)a i f(R(s =R j&R|s+l =R i+1 )k+;i f(k=0 )re t u rn 0;00&|)oi f(j=2*n)pri n t f(R 具有传递性n );)i n t m a i n()叩ri ntf(请输入集合X中的元素个数和关系R中的序偶个数:n);sc a nf(%d%d ”,&m,&n);pri ntf(请输入集合X:n);0fo r(i=0;i V m;i+)8 s canf(%d ,X+i);叩ri n tf(请输入关系R:(每两个连续输入的数是一个序偶!)n );o f or(i=0;i 2*n;i+)gscanf(”%d,R+i);prin t f(集合 X:nX=);of o r(i=0;im;i+)op r intf(d,Xi);opr i ntf(bn);p r intf(关系 R:nR=);for(i=0;i 2*n:i=i+2)-p r intf(H,u,Ri,R i+1 );oprintf(b n”);z if a n();d u i c h e n();ch u an d i();五.实验结果实验结果截图大小为:宽(10cm)X高(8 cm)J C:UsersAdministratorDe5ktopDebug茗学3.、I 回.请输入集合X巾的元素个数和关系R中的序偶个数:2 4请瑜入集合X:1 2请输入关系R:(每两个连续输入的数是一个序偶!)1 2 2 1 1 1 2 2集合X:X=关系R:R=,2,2R具有同皮隹R具有对称任R具有*递屉Pkess any key to continue六.心得体会内容格式:宋体,小五号,行间距固定值1 8 磅实验四图的矩阵运算一.实验目的图形的矩阵涉及邻接矩阵、可达矩阵和关联矩阵,它们描述了一个图形节点与边之间的关系。可达矩阵表白了图中任何两个不同的结点之间是否存在至少一条道路,以及在任何结点处是否存在着回路。可达性矩阵是判别一个有向图是否为强连通图或弱连通图的有效工具,通过编程实现图形的矩阵,帮助同学们掌握图形矩阵生成方法。二.实验原理定 义 设 G =(V,E)是图,节点集合己编号V=v l,v 2,,v n ,则G的邻接矩阵 A (G)=(a ij)n x n 中元素an 表达为:1 若 斗,G E0 若/E定义 设 仃=(V,E)是无向图,节点集合和边集合均已编号V=h,V2,v jE =e,ez,,e J,则 G的关联矩阵(G)=中元素mu 为L匕是 e 的起点畋y=-1,乙是 3 的 终 点,i =1,2 ,n;j=1,2,,m。0,乙与e,不关联定义 设 G=(V,E)是一个阶的有向简朴图,=乙 。定义矩阵尸=(P )X,其中=p,从 匕 至 存 在 非 零 的 有 向 道 路“一 o,其 它,称 P是图G的可达矩阵。求可达矩阵可以先构造A,A?,A ,再构造8“=A +A?+A”,最后运用关系=f l,若 与 0,P ij=0,若 热 =0,拟定P的元素Pu从而构造出几显然,这种先求A ,A 2,A 3,A”,8“再构造P的方法很费事。假如我们把邻接矩阵A当作关系矩阵,那么求可达矩阵就相称于求A的传递闭包,因此可以仿照集合论中求关系的传递闭包的办法,求可达矩阵P o三.实验内容通过编程,将图形的邻接矩阵、关联矩阵、可达矩阵表达出来。四.算法程序内容格式:新罗马,小五号,行间距固定值1 8磅邻接矩阵:#i n c 1 u d e m a i n()(E t a4 4,i J ;ofor(i=0;i 4;i+)。f o r(j=0 ;j 4 ;j+)。s can f(d”,&a E i|j);o r (i=0 ;i 4:i+)。g f b r (j=0 ;j 4;j+)wpr i n t f(%d ,a i j);。叩 r i n t f(n );)f o r(i=0;i 4;i+)f o r (j=0;j 4;j+)g。i f(a i j =a j i)b r eak;。叩r in t f (该矩阵是邻接矩阵!关联矩阵:#i n e l u d e ”s t d i o.h”in t main()(in t i,j,n,m,a 1 0 1 0 ;p r in t f (输入该矩阵为几个点:n”);o s c a n f(%d ,&n );叩r i n t f(输入该矩阵为几条边:n );s c a n f(d ,&m);叩 i n t f(输入点与边之间的关系,有关系起点为1,终点为一1,没有关系为0 :n );f o r (i=1 ;i=n;i+)叩 r i n t f (v%d ,i);p r i n t f(H n );f o r(i=0;i m:i+)Ugprin t f(n%d ,i+1 );ofbr(j=0;jn;j+)s can f(”%d*,&ai j );oreturn 0;)可达矩阵:#include stdio.h m a i n()(in t i,j,n,m,a 1 0 1 0;叩rin t f C输入该有向矩阵为几阶简朴矩阵:n);o s ca n f(%d ,&n);叩r i ntf(”输入点与点之间的关系:n”);。f or(i=1;i =n;i+)叩ri n t f(v%d;i);叩r im f(n”);O r(i=0;i printf(v%d,i+1 );fbr(j=0;j n;j+)s canf(%du,&a i j);ofo r(i=0;i n;i+)f o r(j=O;jn;j+)(a i j =1;.if(a i j!=O)gf o r(m=j;m n;m+)痴 f(a j m =1)fta i m =1 ;同 i i =1;)pr i n tf(”输出可达关系,可达为1 ,不可达关系为0:n);fbr(i=1 ;i =n;i+)叩rin t f(v%d,i);叩 r i n t f(n”);of O r(i=0;in;i+)o p rin t f(v%d,i+l);gfbr(j=O;jn;j 4-+)叩 r i n t f(“%d,ai j);opr i n t f(n n);I五.实验结果实验结果截图大小为:宽(1 0 c m)X高(8c m)选择C:Users周掌珍Desktop、新建文 一口X111 OO2o1O0020O1 0 1 05r o c e s s e x i t e d a f t e r 2 5.9 s e c o n d s w i t h r e t u r n a l u e 0|青按任意键继续.摸狗拼音输入法全:选择 C:Users惆 D esktop新 jW cyuyan23.X输入该矩阵为几条边:输入点与边之间的关系,有关系起点为1,终点为-1,没有关系为0v ln l 2n 2 1n 30n 40n 50v 200011v 300111v 401100Pr o c e s s e x i t e d a f t e r 1 2 0.8 s e c o n d s w i t h r e t u r n v a l u e 0请按任意键继续.搜狗拼音输入法全:1&J?C:Us e r s B De s k t o p Wf)Kt c y uy an 0.X(该有向矩阵为几阶简单矩阵:4输入点与点之间的关系:v OV rV 120;0:1v 2v 41010输出可达关系,可达为1,不可达关系为0:v lv lv 2v 3v 4v 21111v 311111111v 41111Pr o c e s s e x i t e d a f t e r 42.9 s e c o n d s w i t h r e t u r n v a l u e 0请按任意键继续.六.心得体会内容格式:宋体,五号,行间距固定值1 8磅通过本次实验,我对矩阵关系有了进一步理解。