数学逻辑问题: 一个违禁药品调查,确定有2个人服用了违禁药物, 但是有共有5个嫌疑人。

五个嫌疑人为A B C D E.对每一个嫌疑人调查,得出了5个陈述:
(1)A说:B 或C 服了药,但不是2个人都服了药
(2)B说:D 或A服了药,但不是2个人都服了药
(3)C说: E或B服了药,但不是2个人都服了药
(4)D说:C或E服了药,但不是2个人都服了药
(5) E说:C或D服了药,但不是2个人都服了药
其中4个陈述式正确的1个事错误的(也没有一个人说谎)。另外,调查者从一个可靠地人得到了一个正确的消息是: 如果D服了药,C就服了药(数学关系:D->C)
请问:用以上信息得出 那俩个人服了药? (提示:真值表或许有帮助)!

如果对方法没有要求,那么楼上的答案应该是最简洁有效的了。
  对于你所说的“表达式法”和“真值表法”,当然也能解决问题,但过程很复杂。
如果用表达式,就必须将题目中的所有条件表示出来:
  首先,【5人中有2人服药】;仅此一条,就得用C(5,2)=10个最小项的标准与或式表达——逻辑代数中的术语,不明白也不要紧,总之是很复杂的;
  另外,5人的陈述要用5个表达式;而【5个陈述中4真、1假】,得用C(5,1)=5组表达式的{逻辑或}表示;
  最后,再把所有的表达式取{逻辑与}。当然,最后化简的结果,肯定是一个最小项,表示了哪2人服了药。
而对于真值表,5个逻辑变量,其真值表有2^5=32行,分析起来也不简单。

不过,我们可以用一个折衷的办法:一半用表达式或真值表,一半用人工分析。
  如上所述,【5人中有2人服药】需用10个最小项的或表示:
①:ABC′D′E′;——表示:A、B服药;下面的可自己理解;
②:AB′CD′E′;
③:AB′C′DE′;
④:AB′C′D′E;
⑤:A′BCD′E′;
⑥:A′BC′DE′;
⑦:A′BC′D′E;
⑧:A′B′CDE′;
⑨:A′B′CD′E;
⑩:A′B′C′DE;
  5人的陈述分别表示为:
⑴:B⊕C;——⊕为{异或},等价于:BC′+B′C;
⑵:A⊕D;
⑶:B⊕E;
⑷:C⊕E;
⑸:C⊕D;
  另外,还有一个附加条件:【D→C】
ⓞ:D→C=D′+C=(C′D)′;——表示其等价于:【C假且D真】的非;

  不管怎样,最终的结果,肯定就是①~⑩中的一个。我们现在唯一要做的就是:排除不可能的结果。
(1)根据【附加条件ⓞ】:
  真正的结果,肯定与ⓞ是相容的——即:是不矛盾的;那么与ⓞ矛盾的,就一定不是真正的结果——这就是排除法的原理。
  要证明两个命题矛盾,只需将二者取“与”,推出其结果为0即可。当然,对于本题更适合用它的一个等价方法,原理如下:
  【P·Q=0】↔【(P·Q)′=1】↔【P′+Q′=1】↔【P→Q′=1】
文字描述即:
  两个命题矛盾,当且仅当:从其中(任意)一个命题,可推出另一个命题的非;
对于本题就是:
  看看从①~⑩中的哪个命题,可推出ⓞ的非。
因为:
  ⓞ′=C′D;是一个小项;
所以:
  在形式上包含【C′D】的那些小项,就是可推出ⓞ′的命题。
显然:①~⑩中,包含【C′D】的是:③、⑥、⑩;所以可排除它们。

(2)根据【⑴~⑸中4真、1假】:
  ⑴~⑸都是异或式,其含义是:相关的2个变量,取值必须不同。
那么它们的反面就是:
  相关的2个变量,取值相同;
例如:⑴:B⊕C=BC′+B′C;
   ⑴′:(B⊕C)′=BC+B′C′;
那么:
  要判断①~⑩与⑴~⑸是否矛盾,只需看前者是否蕴含后者的非。
例如:
  ①:ABC′D′E′;表示:A、B 取值相同;C、D、E 取值相同;
  依次观察⑴~⑸,可知:
    C、E相同,导致⑷为假;
    C、D相同,导致⑸为假;
  这样就产生了2个假命题;与题目的要求【4真、1假】不符;所以①不是真正的结果;

  按同样的方法分析①~⑩中的其他命题——当然(1)中排除的那3个就不用分析了,可得出最终结果是:
  ②:AB′CD′E′;
即:
  A、C 服药;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-16
表示纯靠逻辑推理 没借助其他
突破点在C 因为1.4.5都提到了C
我们假设C没有服药 则因为B D E 中有俩人服药 1.4.5 中必有一人错误 铁定是5 因为给句正确的消息 如果5对了 即D服了药 C也就服了药 与假设不服 至此 B E 服药 但是2.3 全部错误 因此假设错误
由此C必定服药 则1.4.5正确 B E D 均没有服药 剩下只有A服了药 此时 1.2.4.5 正确 3错误 符合题意
综上 A,C服药追问

谢谢,那用表达式怎么表示啊,类似Truth table

追答

真心没研究过。Sorry了。一定要用真值表么?

追问

yes

yes

相似回答