离散数学及其应用,第六版
P13,
28,A说:“我们之间至少有一个流氓”,B什么都没说
设P=A是武士,Q=B是武士,!P=A是流氓,!Q=B是流氓
假设A是武士,那么“我们之间至少有一个流氓”为真,即:P->(!P|!Q)
假设A是流氓,那么“我们之间至少有一个流氓”为假,即:!P->!(!P|!Q)
构建真值表
P | Q | P->(!P|!Q) | !P->!(!P|!Q) |
1 | 1 | 1->(0|0)=0 | 0->!(0|0)=0->1=1 |
1 | 0 | 1->(0|1)=1 | 0->!(0|1)=0->0=1 |
0 | 1 | 0->(1|0)=1 | 1->!(1|0)=1->0=0 |
0 | 0 | 0->(1|1)=1 | 1->!(1|1)=1->0=0 |
只有P=1,Q=0的情况下成立,因此A是武士,Q是流氓
29,A说:“我是流氓或者B是武士”,B什么都没说
设P=A是武士,Q=B是武士,!P=A是流氓,!Q=B是流氓
假设A是武士,那么“我是流氓或者B是武士”为真,即:P->(!P|Q)
假设A是流氓,那么“我是流氓或者B是武士”为假,即:!P->!(!P|Q)
构建真值表
P | Q | P->(!P|Q) | !P->!(!P|Q) |
1 | 1 | 1->(0|1)=1 | 0->!(0|1)=0->!1=1 |
1 | 0 | 1->(0|0)=0 | 0->!(0|0)=0->!0=1 |
0 | 1 | 0->(1|1)=1 | 1->!(1|1)=1->!1=0 |
0 | 0 | 0->(1|0)=1 | 1->!(1|0)=1->!1=0 |
只有P=1,Q=1成立,因此A和B都是武士
30,A说“我们都是流氓”,B什么都没说
设P=A是武士,Q=B是武士,!P=A是流氓,!Q=B是流氓
假设A是武士,那么“我们都是流氓”为真,即:P->(!P&!Q)
假设A是流氓,那么“我们都是流氓”为假,即:!P->!(!P&!Q)
构建真值表
P | Q | P->(!P&!Q) | !P->!(!P&!Q) |
1 | 1 | 1->(0&0)=0 | 0->!(0&0)=0->!0=1 |
1 | 0 | 1->(0&1)=0 | 0->!(0&1)=0->!0=1 |
0 | 1 | 0->(1&0)=1 | 1->!(1&0)=1->!0=1 |
0 | 0 | 0->(1&1)=1 | 1->!(1&1)=1->!1=0 |
只有P=0,Q=1成立,因此A是流氓,B是武士
31,相对薪水问题
设
P=傅雷德的薪水是三人中最高的,注意这个设定跟原题描述中的第一个命题相反,原题描述为“如果傅雷德的薪水不是三人中最高的”
Q=杰尼斯的最高
R=杰尼斯的薪水不是最低的
S=麦吉的最高
可以列出各命题之间的关系
如果傅雷德的薪水不是三人中最高的,那么杰尼斯的最高,可知!P->Q
如果杰尼斯的薪水不是最低的,那么麦吉的最高的最高,可知R->S
薪水最高的只有一个人,因此命题P,Q,S这三个条件只有一个为真,即(P&!Q&!S)|(!P&Q&!S)|(!P&!Q&S)
另外还有Q->R
列出真值表,只有P=1,Q=0,R=0,S=0成立,因此三人薪水从高到低分别是傅雷德,麦吉,杰尼斯
P | Q | R | S | !P->Q | Q->R | R->S | (P&!Q&!S)|(!P&Q&!S)|(!P&!Q&S) |
1 | 1 | 1 | 1 | 0->1 | 1->1 | 1->1 | (1&0&0)|(0&1&0)|(0&0&1)=0|0|0=0 |
1 | 1 | 1 | 0 | 0->1 | 1->1 | 1->0 | (1&0&1)|(0&1&1)|(0&0&0)=0|0|0=0 |
1 | 1 | 0 | 1 | 0->1 | 1->0 | 0->1 | (1&0&0)|(0&1&0)|(0&0&1)=0|0|0=0 |
1 | 1 | 0 | 0 | 0->1 | 1->0 | 0->0 | (1&0&1)|(0&1&1)|(0&0&0)=0|0|0=0 |
1 | 0 | 1 | 1 | 0->0 | 0->1 | 1->1 | (1&1&0)|(0&0&0)|(0&1&1)=0|0|0=0 |
1 | 0 | 1 | 0 | 0->0 | 0->1 | 1->0 | (1&1&1)|(0&0&1)|(0&1&0)=1|0|0=1 |
1 | 0 | 0 | 1 | 0->0 | 0->0 | 0->1 | (1&1&0)|(0&0&0)|(0&1&1)=0|0|0=0 |
1 | 0 | 0 | 0 | 0->0 | 0->0 | 0->0 | (1&1&1)|(0&0&1)|(0&1&0)=1|0|0=1 |
0 | 1 | 1 | 1 | 1->1 | 1->1 | 1->1 | (0&0&0)|(1&1&0)|(1&0&1)=0|0|0=0 |
0 | 1 | 1 | 0 | 1->1 | 1->1 | 1->0 | (0&0&1)|(1&1&1)|(1&0&0)=0|1|0=1 |
0 | 1 | 0 | 1 | 1->1 | 1->0 | 0->1 | (0&0&0)|(1&1&0)|(1&0&1)=0|0|0=0 |
0 | 1 | 0 | 0 | 1->1 | 1->0 | 0->0 | (0&0&1)|(1&1&1)|(1&0&0)=0|1|0=1 |
0 | 0 | 1 | 1 | 1->0 | 0->1 | 1->1 | (0&1&0)|(1&0&0)|(1&1&1)=0|0|1=1 |
0 | 0 | 1 | 0 | 1->0 | 0->1 | 1->0 | (0&1&1)|(1&0&1)|(1&1&0)=0|0|0=0 |
0 | 0 | 0 | 1 | 1->0 | 0->0 | 0->1 | (0&1&0)|(1&0&0)|(1&1&1)=0|0|1=1 |
0 | 0 | 0 | 0 | 1->0 | 0->0 | 0->0 | (0&1&1)|(1&0&1)|(1&1&0)=0|0|0=0 |
33,证人调查问题
设P=男管家说真话,Q=厨师说真话,R=园丁说真话,S=杂役说真话
各种关系如下
如果男管家说的是真话,那么厨师说的也是真话,即P->Q
厨师和园丁说的不可能都是真话,即!(Q&R)
园丁和杂役不可能都在说谎,即R|S
如果杂役说真话,那么厨师在说谎,即S->!Q
列出真值表如下,以下三种情况都成立
P=0,Q=0,R=1,S=1
P=0,Q=0,R=1,S=0
P=0,Q=0,R=0,S=1
因此,男管家和厨师说谎,园丁和杂役至少有一个说真话
P | Q | R | S | P->Q | !(Q&R) | R|S | S->!Q |
1 | 1 | 1 | 1 | 1->1 | !(1&1)=!1=0 | 1|1 | 1->0 |
1 | 1 | 1 | 0 | 1->1 | !(1&1)=!1=0 | 1|0 | 0->0 |
1 | 1 | 0 | 1 | 1->1 | !(1&0)=!0=1 | 0|1 | 1->0 |
1 | 1 | 0 | 0 | 1->1 | !(1&0)=!0=1 | 0|0 | 0->0 |
1 | 0 | 1 | 1 | 1->0 | !(0&1)=!0=1 | 1|1 | 1->1 |
1 | 0 | 1 | 0 | 1->0 | !(0&1)=!0=1 | 1|0 | 0->1 |
1 | 0 | 0 | 1 | 1->0 | !(0&0)=!0=1 | 0|1 | 1->1 |
1 | 0 | 0 | 0 | 1->0 | !(0&0)=!0=1 | 0|0 | 0->1 |
0 | 1 | 1 | 1 | 0->1 | !(1&1)=!1=0 | 1|1 | 1->0 |
0 | 1 | 1 | 0 | 0->1 | !(1&1)=!1=0 | 1|0 | 0->0 |
0 | 1 | 0 | 1 | 0->1 | !(1&0)=!0=1 | 0|1 | 1->0 |
0 | 1 | 0 | 0 | 0->1 | !(1&0)=!0=1 | 0|0 | 0->0 |
0 | 0 | 1 | 1 | 0->0 | !(0&1)=!0=1 | 1|1 | 1->1 |
0 | 0 | 1 | 0 | 0->0 | !(0&1)=!0=1 | 1|0 | 0->1 |
0 | 0 | 0 | 1 | 0->0 | !(0&0)=!0=1 | 0|1 | 1->1 |
0 | 0 | 0 | 0 | 0->0 | !(0&0)=!0=1 | 0|0 | 0->1 |