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

示意圖/ingimage

有4名竊盜嫌疑犯,其中1人是竊賊。4名嫌疑犯各自發言,要不是說實話,就是全程都在說謊。請速速換上偵探的大衣,根據他們的回答,推理出結果。

邏輯是一門研究推論的學問。在推論時,我們會用到2種工具:前提、假設。前提就是已知,我們可以利用已知來得到更多結論。但只有前提並不夠,有些時候我們必須假設一些東西,再加上前提,可以讓我們更快得到結論。先來整理掌握的前提:

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

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

在邏輯中,如果一個假設推論出互相矛盾的結論,就代表該假設錯了。這種論證方式也是數學上常用的「反證法」。在這題,因爲只有1個嫌疑犯是真正的竊賊,所以我們不妨輪流假設每個人是竊賊,再來看看這樣的假設是否會推論出矛盾的結果。一旦有矛盾,就知道該名嫌疑犯不是竊賊。

➊假設甲是竊賊

甲說「乙沒有偷,是丁偷的。」

→宣稱乙不是竊賊,代表甲說實話/甲說實話卻說丁是竊賊,與「甲是竊賊」的假設矛盾

假設被推翻,因此甲不是竊賊。

➋假設丙是竊賊

甲說「乙沒有偷,是丁偷的。」

→宣稱乙不是竊賊,代表甲說實話/甲說實話卻說丁是竊賊,與「丙是竊賊」的假設矛盾

假設被推翻,因此丙不是竊賊。

➌繼續假設剩下2位嫌疑犯就是竊賊,只要假設沒被推翻,就抓到竊賊啦!

「反證法」可以有條有理地分析每個人沒錯,但這樣一個一個分析實在是有點辛苦。利用「前提➁:每位嫌疑犯的發言全真或全假」,就能快速判斷結果。

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

如果甲的話是真的,就代表丁是竊賊;但如果甲說謊,代表乙纔是竊賊。

所以,無論甲有沒有說謊,甲跟丙都可以無罪釋放了,因爲竊賊不是乙,就是丁!

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

因爲丙已經沒有嫌疑了,可見乙在說謊。謎底揭曉,竊賊就是乙啦!

本篇文章與數感實驗室朱倍玉共同完成。