实验名称:命题逻辑公式化简
实验目的和要求:加深对五个基本联结词(否定、合取、析
取、条件、双条件)的理解、掌握利用基本等价公式化简公式的方法。
实验内容:
【实验内容】用化简命题逻辑公式的方法设计一个表决开关电路。
实验用例:用化简命题逻辑公式的方法设计一个5人表决开关电路,要求3人以上(含3人)同意则表决通过(表决开关亮)。
【实验原理和方法】
(1)写出5人表决开关电路真值表,从真值表得出5人表决开关电路的主合取公式(或主析取公式),将公式化简成尽可能含五个基本联结词最少的等价公式。
(2)上面公式中的每一个联结词是一个开关元件,将它们定义成C语言中的函数。
(3)输入5人表决值(0或1),调用上面定义的函数,将5人表决开关电路真值表的等价公式写成一个函数表达式。
(4)输出函数表达式的结果,如果是1,则表明表决通过,否则表决不通过。
实验心得:
- 利用真值表(详见附录):得到5人表决开关电路的主析取范式m00111∨m01011∨m01101∨m01110∨m01111∨m10011∨m10101∨m10110∨m10111∨m11001∨m11010∨m11011∨m11100∨m11101∨m11110∨m11111
- 利用python语言:
a = [eval(x) for x in input('请输入5个人的表决意愿,同意为1,不同意为0:').split()]
if(sum(a)>2):
print('表决通过!')
else:
print('表决不通过!')
①表决通过示例:
②表决不通过示例:
附录:真值表
A |
B |
C |
D |
E |
值 |
小项 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
0 |
0 |
1 |
0 |
|
0 |
0 |
0 |
1 |
0 |
0 |
|
0 |
0 |
0 |
1 |
1 |
0 |
|
0 |
0 |
1 |
0 |
0 |
0 |
|
0 |
0 |
1 |
0 |
1 |
0 |
|
0 |
0 |
1 |
1 |
0 |
0 |
|
0 |
0 |
1 |
1 |
1 |
1 |
m00111 |
0 |
1 |
0 |
0 |
0 |
0 |
|
0 |
1 |
0 |
0 |
1 |
0 |
|
0 |
1 |
0 |
1 |
0 |
0 |
|
0 |
1 |
0 |
1 |
1 |
1 |
m01011 |
0 |
1 |
1 |
0 |
0 |
0 |
|
0 |
1 |
1 |
0 |
1 |
1 |
m01101 |
0 |
1 |
1 |
1 |
0 |
1 |
m01110 |
0 |
1 |
1 |
1 |
1 |
1 |
m01111 |
1 |
0 |
0 |
0 |
0 |
0 |
|
1 |
0 |
0 |
0 |
1 |
0 |
|
1 |
0 |
0 |
1 |
0 |
0 |
|
1 |
0 |
0 |
1 |
1 |
1 |
m10011 |
1 |
0 |
1 |
0 |
0 |
0 |
|
1 |
0 |
1 |
0 |
1 |
1 |
m10101 |
1 |
0 |
1 |
1 |
0 |
1 |
m10110 |
1 |
0 |
1 |
1 |
1 |
1 |
m10111 |
1 |
1 |
0 |
0 |
0 |
0 |
|
1 |
1 |
0 |
0 |
1 |
1 |
m11001 |
1 |
1 |
0 |
1 |
0 |
1 |
m11010 |
1 |
1 |
0 |
1 |
1 |
1 |
m11011 |
1 |
1 |
1 |
0 |
0 |
1 |
m11100 |
1 |
1 |
1 |
0 |
1 |
1 |
m11101 |
1 |
1 |
1 |
1 |
0 |
1 |
m11110 |
1 |
1 |
1 |
1 |
1 |
1 |
m11111 |
代码可能存在借鉴,侵删!