閱讀數學/你知道是誰在說謊嗎?

示意图/ingimage

有4名窃盗嫌疑犯,其中1人是窃贼。4名嫌疑犯各自发言,要不是说实话,就是全程都在说谎。请速速换上侦探的大衣,根据他们的回答,推理出结果。

逻辑是一门研究推论的学问。在推论时,我们会用到2种工具:前提、假设。前提就是已知,我们可以利用已知来得到更多结论。但只有前提并不够,有些时候我们必须假设一些东西,再加上前提,可以让我们更快得到结论。先来整理掌握的前提:

➀真相只有1个,犯人也只有1位

➁每位嫌疑犯的发言「全真」或「全假」

在逻辑中,如果一个假设推论出互相矛盾的结论,就代表该假设错了。这种论证方式也是数学上常用的「反证法」。在这题,因为只有1个嫌疑犯是真正的窃贼,所以我们不妨轮流假设每个人是窃贼,再来看看这样的假设是否会推论出矛盾的结果。一旦有矛盾,就知道该名嫌疑犯不是窃贼。

➊假设甲是窃贼

甲说「乙没有偷,是丁偷的。」

→宣称乙不是窃贼,代表甲说实话/甲说实话却说丁是窃贼,与「甲是窃贼」的假设矛盾

假设被推翻,因此甲不是窃贼。

➋假设丙是窃贼

甲说「乙没有偷,是丁偷的。」

→宣称乙不是窃贼,代表甲说实话/甲说实话却说丁是窃贼,与「丙是窃贼」的假设矛盾

假设被推翻,因此丙不是窃贼。

➌继续假设剩下2位嫌疑犯就是窃贼,只要假设没被推翻,就抓到窃贼啦!

「反证法」可以有条有理地分析每个人没错,但这样一个一个分析实在是有点辛苦。利用「前提➁:每位嫌疑犯的发言全真或全假」,就能快速判断结果。

➊甲:「乙没有偷,是丁偷的。」

如果甲的话是真的,就代表丁是窃贼;但如果甲说谎,代表乙才是窃贼。

所以,无论甲有没有说谎,甲跟丙都可以无罪释放了,因为窃贼不是乙,就是丁!

➋乙:「我没有偷,是丙偷的。」

因为丙已经没有嫌疑了,可见乙在说谎。谜底揭晓,窃贼就是乙啦!

本篇文章与数感实验室朱倍玉共同完成。