閱讀數學/你知道是誰在說謊嗎?
有4名竊盜嫌疑犯,其中1人是竊賊。4名嫌疑犯各自發言,要不是說實話,就是全程都在說謊。請速速換上偵探的大衣,根據他們的回答,推理出結果。
甲說:「乙沒有偷,是丁偷的。」乙說:「我沒有偷,是丙偷的。」
丙說:「甲沒有偷,是乙偷的。」
丁說:「我沒有偷。」
邏輯是一門研究推論的學問。在推論時,我們會用到2種工具:前提、假設。前提就是已知,我們可以利用已知來得到更多結論。但只有前提並不夠,有些時候我們必須假設一些東西,再加上前提,可以讓我們更快得到結論。先來整理掌握的前提:
➀真相只有1個,犯人也只有1位
➁每位嫌疑犯的發言「全真」或「全假」
在邏輯中,如果一個假設推論出互相矛盾的結論,就代表該假設錯了。這種論證方式也是數學上常用的「反證法」。在這題,因為只有1個嫌疑犯是真正的竊賊,所以我們不妨輪流假設每個人是竊賊,再來看看這樣的假設是否會推論出矛盾的結果。一旦有矛盾,就知道該名嫌疑犯不是竊賊。
➊假設甲是竊賊
甲說「乙沒有偷,是丁偷的。」
→宣稱乙不是竊賊,代表甲說實話/甲說實話卻說丁是竊賊,與「甲是竊賊」的假設矛盾
假設被推翻,因此甲不是竊賊。
➋假設丙是竊賊
甲說「乙沒有偷,是丁偷的。」
→宣稱乙不是竊賊,代表甲說實話/甲說實話卻說丁是竊賊,與「丙是竊賊」的假設矛盾
假設被推翻,因此丙不是竊賊。
➌繼續假設剩下2位嫌疑犯就是竊賊,只要假設沒被推翻,就抓到竊賊啦!
「反證法」可以有條有理地分析每個人沒錯,但這樣一個一個分析實在是有點辛苦。利用「前提➁:每位嫌疑犯的發言全真或全假」,就能快速判斷結果。
➊甲:「乙沒有偷,是丁偷的。」
如果甲的話是真的,就代表丁是竊賊;但如果甲說謊,代表乙才是竊賊。
所以,無論甲有沒有說謊,甲跟丙都可以無罪釋放了,因為竊賊不是乙,就是丁!
➋乙:「我沒有偷,是丙偷的。」
因為丙已經沒有嫌疑了,可見乙在說謊。謎底揭曉,竊賊就是乙啦!
本篇文章與數感實驗室朱倍玉共同完成。
贊助廣告
商品推薦
udn討論區
- 張貼文章或下標籤,不得有違法或侵害他人權益之言論,違者應自負法律責任。
- 對於明知不實或過度情緒謾罵之言論,經網友檢舉或本網站發現,聯合新聞網有權逕予刪除文章、停權或解除會員資格。不同意上述規範者,請勿張貼文章。
- 對於無意義、與本文無關、明知不實、謾罵之標籤,聯合新聞網有權逕予刪除標籤、停權或解除會員資格。不同意上述規範者,請勿下標籤。
- 凡「暱稱」涉及謾罵、髒話穢言、侵害他人權利,聯合新聞網有權逕予刪除發言文章、停權或解除會員資格。不同意上述規範者,請勿張貼文章。
FB留言