第三章 做一把福尔摩斯——烧脑的逻辑推理
3.1 谁是罪犯
一家银行被盗,警察锁定了四个嫌疑人,可以肯定是甲、乙、丙、丁中的某一个人所为。审讯中,甲说:“我不是罪犯。”乙说:“丁是罪犯。”丙说:“乙是罪犯。”丁说:“我不是罪犯。”经调查证实四人中只有一个人说的是真话。请问谁说的是真话?谁是真正的罪犯?
难度:★
解决这类逻辑推理问题大都可以用假设的方法,即假设某一个命题(例如本题中某一个嫌疑人的供词)为真,如果在此基础上推导出矛盾,就可以断定假设是错误的,这样逐一排除,最终推导出正确的结论。
从题目中给出的条件,可以得到以下确认的信息:
银行被盗一定是甲、乙、丙、丁中的某一个人所为。
甲、乙、丙、丁四人中只有一个人说的是真话。
另外还有不确认的甲、乙、丙、丁四人的供词:
甲说:“我不是罪犯。”
乙说:“丁是罪犯。”
丙说:“乙是罪犯。”
丁说:“我不是罪犯。”
根据以上的信息,从甲、乙、丙、丁四人的供词出发,逐一假设推断,找出真正的银行盗贼。
1)假设甲说的是真话,那么根据确认的已知条件(甲乙丙丁四人中只有一个人说的是真话)可以得出:乙、丙、丁都在说谎,则有图3-1所示矛盾。
•图3-1 假设“甲说的是真话”推出矛盾的过程
2)假设乙说的是真话,那么根据确认的已知条件(甲乙丙丁四人中只有一个人说的是真话)可以得出:甲、丙、丁都在说谎,则有图3-2所示矛盾。
•图3-2 假设“乙说的是真话”推出矛盾的过程
因为确认的已知条件中说:珠宝店被盗一定是甲、乙、丙、丁中的某一个人所为。所以甲和丁不可能都是罪犯,得出矛盾,这说明乙也在说谎。
3)假设丙说的是真话,那么根据确认的已知条件(甲乙丙丁四人中只有一个人说的是真话)可以得出:甲、乙、丁都在说谎,只有丙说的是真话,则有图3-3所示矛盾。
•图3-3 假设“丙说的是真话”推出矛盾的过程
显然又推出了矛盾,所以丙也在说谎,只有丁说的是真话。
那么谁是真正的罪犯呢?其实这个答案一开始我们就应该可以得到了。从推断1)中得知甲在说谎,因此甲说的“我不是罪犯”就是假话了,所以可以证明甲就是罪犯。