实验一 数理逻辑相关内容
一.实验目的
1.实现二元合取、析取、蕴涵和等价表达式的计算。熟悉连接词逻辑运算规则,利用程序语言实现逻辑这几种逻辑运算。
2.通过编程实现,使学生熟练掌握利用计算机语言实现逻辑运算的基本方法。
3.使学生熟练掌握利用计算机语言实现逻辑运算的基本方法,增强逻辑推理能力。
二. 实验原理
(1)主析取范式:如果公式A的析取范式中的简单合取式全是极小项,则称该析取范式为主析取范式。
(2)若指定的一组值是A的值为真,则称这组值为A的成真赋值,若使A的值为假,则称这组值为A的成假赋值。
(3)含n个命题变项的命题公式共有组赋值,将命题公式A在所有赋值之下的取值情况列成表,称为A的真值表。
(4)联接词的一些基本常识定理:1.为真当且仅当为假。2.为真当且仅当与同时为真。3.为真当且仅当p与q中至少有一个为真。4.为假当且仅当p为真且q为假。
(5)设有n个命题变项,若在简单合取式中每个命题变项与其否定有且仅有一个出现一次,则这样的简单合取式称为极小项。
(6)推理是从前提推出结论的思维过程,前提是已知的命题公式,结论是从前提出发应用推理规则推出的命题公式。
三.实验内容
利用matlab编写M文件,完成下列问题的求解。
主程序M文件命名规范”M_学号后两位_EX2_题号.m”。
必做题:
1.从键盘输入两个命题变元P和Q的真值,求它们的合取、析取、蕴涵和等价四种运算的真值。要求对输入内容进行分析,如果不符合0、1条件需要重新输入,程序有良好的输入输出界面。
2.对给出的任意一个命题公式(不超过四个命题变元),使学生会用matlab编程表示出来,并且能够计算它在各组真值指派下所应有的真值,画出其真值表。
(1)的真值表;
(2)的真值表;
(3)的真值表;
3.编程解决下列问题:
求公式 的主析取范式与主合取范式,并求公式的成真赋值和成假赋值。
4.编程解决下列问题:
选做题:
1.编程解决下列问题:
三个老师问题:已知A,B,C 3人是小学老师,各教两门课,互不重复,共有如下六门课。语文、数学、政治、地理、音乐和美术,已经知道:
–政治老师和数学老师是邻居
–地理老师比语文老师年龄大
–B最年轻
–A经常给地理老师和数学老师讲他看过的文学作品
–B经常和音乐老师、语文老师一起游泳
根据下面的命题,试用逻辑推理方法确定谁是作案者,写出推理过程。
(1)营业员A或B偷了手表;
(2)若A作案,则作案不在营业时间;
(3)若B提供的证据正确,则货柜末上锁;
(4)若B提供的证据不正确,则作案发生在营业时间;
(5)货柜上了锁。
某公司要从赵、钱、孙、李、周五名新毕业
的大学生中选派一些人出国学习. 选派必须满足
以下条件:
(1)若赵去,钱也去;
(2)李、周两人中至少有一人去;
(3)钱、孙两人中有一人去且仅去一人;
(4)孙、李两人同去或同不去;
(5)若周去,则赵、钱也去.
试用主析取范式法,通过编程分析该公司如何选派他们出国?
编程求下述公式的最简展开式:
四. 实验结果及分析
第一题分析:
对于第一题,首先判断用户是否要执行该程序进行计算,然后提示用户输入p和q的值,如果不符合要求就会显示“输入的数据不符合要求”,如果数据正确,下一步提示用户要进行的运算,通过输入运算所对应的数字来计算用户所需要的结果!<