如果你有且僅有一次機會就能得到寶藏,你有什麼邏輯判斷的方法?

朋友在可汗學院看到一個英文的腦筋急轉彎視頻,描述瞭如下問題(我隨便翻譯的):

你去古城堡裡探險,歷盡千辛萬苦,走到最後一關。最後一關有兩個房門,一個通向藏寶室,進去之後你可以攜帶驚人的財富離開;另外一個通向無盡深淵,一旦打開,比死亡還會悲慘。你只有一次機會選擇打開其中一個門。

但是也不完全是碰運氣,兩個房門前分別站著兩個小人,其中一個只說實話,另外一個只說謊話,你有且僅有一次機會問他們其中一個人一個問題,來判斷打開哪個房門。

如果你有且僅有一次機會就能得到寶藏,你有什麼邏輯判斷的方法?

分析

為了財富我拼了,只能問一個人且只能問一個問題,來判斷出哪個房門後邊有寶藏,這肯定是有技巧的,不能隨便問,否則設置這關障礙就沒有意義了。

我們來略作分析,首先這兩個人沒啥特別的標識,所以問哪個其實是無所謂的。但是為了之後分析方便我們將兩個小人分別命名為A和B,兩個小人對應的房門命名為A門與B門。 我畫了如下簡單示意圖:

如果你有且僅有一次機會就能得到寶藏,你有什麼邏輯判斷的方法?

我覺得我蠻有繪畫天賦的。

因為只能問一個人一個問題,但是其中有一個說謊,我們還不知道哪個人說謊,所以我們必須設計一個問題把兩個人都套進去,才能得出有用的線索。所以我設計的問題是問A如下問題:

如果我問B哪扇門後是寶藏,B會如何回答?

笨方法

我不禁為我的機智默默點贊,哈哈哈哈哈。然後問題就簡單了,我們可以分別假設處理以下不同情況:

  • A說真話,那麼B就是說假話的傢伙嘍
  • A回答:B會告訴你A門後邊是寶藏——寶藏在B門
  • A回答:B會告訴你B門後邊是寶藏——寶藏在A門
  • A說謊話,那麼B說的就是真話
  • A回答:B會告訴你A門後邊是寶藏——寶藏在B門
  • A回答:B會告訴你B門後邊是寶藏——寶藏在A門

我們並不知道到底A是說真話的還是說假話的人,所以如果單純地拿出一種情況,我們並不能判斷出寶藏到底在哪扇後,但是如果總計上述幾種情況,我們不能判斷出:A給出的B的答案總是與真實情況相反

所以,我們只需問A上述問題,得到答案後選擇相反的門就對了。

邏輯判斷方法

事情到這裡告一段落,但是如果到這就告一段落就白玩了,這麼多假設這麼多分支繞得人頭大,如果探險得最後一關有時間限制,來個惡狼啥的,估計財寶就得不到了。

那麼有沒有辦法迅速地分析出上述結論呢?答案是有的——無論是學普通邏輯、還是學離散數學、還是學數字電路、又或者學編程語言,我們都會遇到邏輯值以及邏輯運算,比如:邏輯與、邏輯或、邏輯非等等並且常常接觸兩個邏輯值:邏輯真(True)、邏輯假(False)

那麼再回頭看我的處理:

問A這個問題:如果我問B哪扇門後是寶藏,B會如何回答?

其實就是:A過濾一下B的答案,並返回給我,我們把哪扇門後是寶藏換個問法:B門後是寶藏嗎?,那麼對於真實的結果:是或者否,亦即:邏輯真(True)或者邏輯假(False)

繼續下一步,如果B是說謊者,那麼他會在真實的結果之上變成錯誤的結果,亦即:邏輯非(取反),否則不做處理。

繼續下一步,如果A是說謊者,那麼他會在真實的結果之上變成錯誤的結果,亦即:邏輯非(取反),否則不做處理。

流程大致是這樣的:答案 —— B過濾 —— A過濾 —— 我(尋寶者)

因為B和A只能有一個是說謊者,所以我最終得到的答案為:┐答案,就說經過上述流程後我們得到的是邏輯非(取反)後答案!這樣還怕得不到正確答案了嗎?

好吧,我來畫出邏輯非的真值表

P ┐P

False True

True False

更進一步

如果兩個人都說假話呢?按照上述規律我們可以問同樣的問題。然後根據雙重否定律:

┐┐P <==> P

我們就得到的答案就是正確答案了。

但是我們真那樣做就是傻子了,因為直接問其中任何一人哪個是寶藏,然後直接按相反的答案來就可以了

那麼如果是三個人兩扇門,其中有兩個說謊呢?或者是三個人其中有一個人說謊呢?這該如何處理呢?這個問題留給讀者自己思考吧。


分享到:


相關文章: