离散数学实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
离散数学实验报告
重庆交通大学
学生实验报告
实验课程名称离散数学
开课实验室数学实验室
学院理学院
专业信息与计算科学
学生姓名谭冰学号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))
根据析取,合取的定义可用简单的算术运算求出结果,并将结果转换成逻辑值。同样根据等价关系可将条件式及双条件式转换成析取和合取的运算。
五、实验数据及结果分析
实验所用函数:
function y=Not(x)
if x==0
y=1;
else y=0;
end
function m=Vee(x,y)
if x==0&y==0
m=0;
else m=1;
end
function y=Wedge(P,Q)
if P==1&Q==1
y=1;
else y=0;
end
function y=If(P,Q)
y=Vee(Not(P),Q);
end
function y=Hh(P,Q,R)
y=Vee(Wedge(P,R),If(P,Q));
end
function y=Ss(P,Q,R)
y=Wedge(If(P,Wedge(Q,R)),If(Not(P),Wedge(Not(Q),Not(R))));
end
A=[0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1];
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=[0 0 0 0 1 1 1 1];
Q=[0 0 1 1 0 0 1 1];
R=[0 1 0 1 0 1 0 1];
' P Q R'
Z=[P;Q;R]'
K=Wedge(If(P,Wedge(Q,R)),If(Not(P),Wedge(Not(Q),Not(R))));
'主析取范式:'
A=[];
V=[];
for i=find(K)
switch i
case 1
A=[A,'(¬P∧¬Q∧¬R)∨']; case 2
A=[A,'(¬P∧¬Q∧R)∨'];
case 3
A=[A,'(¬P∧Q∧¬R)∨'];
case 4
A=[A,'(¬P∧Q∧R)∨'];
case 5
A=[A,'(P∧¬Q∧¬R)∨'];
case 6
A=[A,'(P∧¬Q∧R)∨'];
case 7
A=[A,'(P∧Q¬∧R)∨'];
case 8
A=[A,'(P∧Q∧R)'];
otherwise
'此为永假式'
end
end
A
'主合取范式'
for i=find(Not(K))
switch i
case 1
V=[V,'(P∨Q∨R)∧'];
case 2
V=[V,'(P∨Q¬∨R)∧']; case 3
V=[V,'(P∨¬Q∨R)∧']; case 4
V=[V,'(P∨¬Q∨¬R)∧']; case 5
V=[V,'(¬P∨Q∨R)∧']; case 6
V=[V,'(¬P∨Q∨¬R)∧']; case 7
V=[V,'(¬P∨¬Q∨R)∧']; case 8
V=[V,'(¬P∨¬Q∨¬R)']; otherwise
'此为永真式'
end
end
V
if all(K)==1
'K是重言式'
else
'K不是重言式'
end %保存文件名为Zy
P17 (1) (b):(P∧R)∨(P→Q)
运行过程及结果:
>> P=[0 0 0 0 1 1 1 1],Q=[0 0 1 1 0 0 1 1],R=[0 1 0 1 0 1 0 1]
P =
0 0 0 0 1 1 1 1
Q =
0 0 1 1 0 0 1 1
R =
0 1 0 1 0 1 0 1
>> Zzb
本程序可以求真值表, 请输入含有三个变元的命题公式:
Vee(Wedge(P,R),If(P,Q))
T =
0 0 0 1
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
P39 (4) (d):(P→(Q∧R)) ∧(¬P→(¬Q∧¬R))