离散数学实验报告.docx
- 文档编号:23900207
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:12
- 大小:19.71KB
离散数学实验报告.docx
《离散数学实验报告.docx》由会员分享,可在线阅读,更多相关《离散数学实验报告.docx(12页珍藏版)》请在冰豆网上搜索。
离散数学实验报告
离散数学实验报告
———————————————————————————————— 作者:
————————————————————————————————日期:
ﻩ
重庆交 通 大 学
学 生实验 报 告
实验课程名称离散数学
开课实验室 数学实验室
学 院 理学院
专 业信息与计算科学
学生 姓名谭冰学号631122020212
班级 2班
开课 时间2011至 2012 学年第 二 学期
教师评语:
总成 绩
教师签名
ﻬ目录
实验一:
教材第17页习题
(1)(b);教材第39页习题(4)(b) …………3.
实验二:
教材第127页习题
(2)(b); 教材第113页习题
(2)(b)ﻩ9
实验一(此实验包含两题)
一、实验内容
1.从键盘输入两个命题变元P和Q的真值,求它们的非,合取,析取,条件和双条件的真值。
2.求任意一个命题公式的真值表。
二、实验目的
熟悉掌握命题逻辑中的联接词,真值表,主范式等,进一步能用它们来解决实际问题。
三、实验环境
MATLAB软件的编程环境实现
四、实现两题的算法与原理(教材第17页习题
(1)(b),39页习题(4)(d))
根据析取,合取的定义可用简单的算术运算求出结果,并将结果转换成逻辑值。
同样根据等价关系可将条件式及双条件式转换成析取和合取的运算。
五、实验数据及结果分析
实验所用函数:
functiony=Not(x)
ifx==0
y=1;
elsey=0;
end
functionm=Vee(x,y)
ifx==0&y==0
m=0;
elsem=1;
end
functiony=Wedge(P,Q)
ifP==1&Q==1
y=1;
elsey=0;
end
functiony=If(P,Q)
y=Vee(Not(P),Q);
end
functiony=Hh(P,Q,R)
y=Vee(Wedge(P,R),If(P,Q));
end
functiony=Ss(P,Q,R)
y=Wedge(If(P,Wedge(Q,R)),If(Not(P),Wedge(Not(Q),Not(R))));
end
A=[00 0
00 1
01 0
011
100
101
1 1 0
111];
P=A(:
1); Q=A(:
2); R=A(:
3);
In=input(‘请输入含有三个变元的命题公式:
’);
S={‘真值表为’};
T=num2str([P,Q,R,In]);
T%保存命名为Zzb
'此为求(P→(Q∧R))∧(¬P→(¬Q∧¬R))主析取范式、主合取范式的程序,并判断是否为重言式,以K代替其真值'
P=[000 01 111];
Q=[0 011001 1];
R=[01010 101];
' P Q R'
Z=[P;Q;R]'
K=Wedge(If(P,Wedge(Q,R)),If(Not(P),Wedge(Not(Q),Not(R))));
'主析取范式:
'
A=[];
V=[];
fori=find(K)
switchi
case1
A=[A,'(¬P∧¬Q∧¬R)∨'];
case2
A=[A,'(¬P∧¬Q∧R)∨'];
case 3
A=[A,'(¬P∧Q∧¬R)∨'];
case4
A=[A,'(¬P∧Q∧R)∨'];
case5
A=[A,'(P∧¬Q∧¬R)∨'];
case6
A=[A,'(P∧¬Q∧R)∨'];
case7
A=[A,'(P∧Q¬∧R)∨'];
case8
A=[A,'(P∧Q∧R)'];
otherwise
'此为永假式'
end
end
A
'主合取范式'
fori=find(Not(K))
switchi
case 1
V=[V,'(P∨Q∨R)∧'];
case2
V=[V,'(P∨Q¬∨R)∧'];
case3
V=[V,'(P∨¬Q∨R)∧'];
case4
V=[V,'(P∨¬Q∨¬R)∧'];
case 5
V=[V,'(¬P∨Q∨R)∧'];
case6
V=[V,'(¬P∨Q∨¬R)∧'];
case7
V=[V,'(¬P∨¬Q∨R)∧'];
case8
V=[V,'(¬P∨¬Q∨¬R)'];
otherwise
'此为永真式'
end
end
V
ifall(K)==1
'K是重言式'
else
'K不是重言式'
end%保存文件名为Zy
P17(1)(b):
(P∧R)∨ (P→Q)
运行过程及结果:
>>P=[0 0001111],Q=[0011001 1],R=[0 1 010101]
P =
00 00 1 1 1 1
Q =
0 0 110 0 11
R=
0 1 0 1 0 1 0 1
>>Zzb
本程序可以求真值表,请输入含有三个变元的命题公式:
Vee(Wedge(P,R),If(P,Q))
T=
0 0 01
0 011
01 01
0 11 1
10 00
1 011
1 10 1
1 111
P39(4)(d):
(P→(Q∧R)) ∧ (¬P→(¬Q∧¬R))
运行过程及结果:
>>Zy
ans=
此为求(P→(Q∧R))∧(¬P→(¬Q∧¬R))主析取范式、主合取范式的程序,并判断是否为重言式,以K代替其真值
ans=
P Q R
Z=
0 0 0
0 0 1
0 10
0 11
1 0 0
101
1 1 0
1 1 1
ans=
主析取范式:
A=
(¬P∧¬Q∧¬R)∨(P∧Q∧R)
ans=
主合取范式
V =
(P∨Q¬∨R)∧(P∨¬Q∨R)∧(P∨¬Q∨¬R)∧(¬P∨Q∨R)∧(¬P∨Q∨¬R)∧(¬P∨¬Q∨R)
ans=
K不是重言式
六、收获与体会
通过实验使我了解了一些数理逻辑问题可以通过用计算编程的方法来解决,一些定理的证明同样也可以用计算机通过将命题符号化来编程解决。
由于计算机运行速度很快,而数理逻辑值只有0和1值,只要用程序合理的表述问题,那么就能将问题解答出来。
再次,它提高了我的计算机编程能力,使我感觉到了编程的乐趣,提供给我无穷的继续学习编程语言的的动力。
实验二(此实验包含两题)
一、实验内容
1.求有限集上给定关系的自反,对称和传递闭包。
2.求有限集上等价关系的数目。
3.求解商集,输入集合和等价关系,求相应的商集。
二、实验目的
掌握关系的概念与性质,基本的关系运算,关系的各种闭包的求法。
理解等价类的概念,掌握等价类的求解方法。
三、实验环境
MATLAB软件的编程环境实现
四、实验原理和实现过程(教材第127页习题
(2)(b);教材第113页习题
(2)(b))
1.先写出要求解的函数,将其保存。
然后在软件中输入相应的矩阵或集合,再利用函数求出相应的结果。
2.写一个M文件,输入一个关系R,判断其是否具有自反性。
五、实验数据及结果分析
实验所用函数:
functionZ=Cup(A,B)
C=A+B;
Z=ones(size(C));
Z(find(C==0))=0;
end
functionZ=Warshall(A)
Z=A;
lengthZ=length(Z);
forj=1:
1:
lengthZ
fori=1:
1:
lengthZ
if Z(i,j)==1
Z(i,:
)=Cup(Z(i,:
),A(j,:
));
end
end
end
end
function y=Mm(A,B)
a=max(A);
M=zeros(a,a);
[i,j]=size(B);
fora=1:
1:
i
b=B(a,1);c=B(a,2);
M(b,c)=1;
end
[s,r]=size(M);
for d=1:
1:
s
fore=1:
1:
r
if d==e
continue;
end
end
end
ifM(d,e)==1
'此关系具有自反性'
else
'此关系不具有自反性'
end
end
P127
(2)(b):
求关系R={,<b,c>,
实验过程及结果:
>>A={'a','b','c'};R={'','<a,b>','<b,c>','
>>Warshall(C)
ans=
1 1 1
0 1 1
0 1 1
P113
(2)(b):
A={1,2,3,4},R={<1,3>,<1,4>,<2,3>,<2,4>,<3,4>},判断R是否具有自反性。
实验过程及结果:
>>A=[1,2,3,4];R=[1,3;1,4;2,3;2,4;3,4];
>>Mm(A,R)
ans=
此关系不具有自反性
六、收获与体会
写这个程序花了不少时间,而且时间相对集中,除了上课外,,在电脑前都是在做这个,连续做了几天,刚开始时并没有完全按照软件步骤去写,而是知道总体方框后,一个模块一个模块去求解,至于每个模块怎么写,则是在写的过程中逐步建立和完善的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 离散数学 实验 报告