本人是極限挑戰的粉絲,最近看了大電影《極限挑戰之皇家寶藏》,對最後一關四杯酒問題有本身的看法.spa
最後一關,只剩王勃和孫紅雷二人.他們面前有四杯酒,其中三杯毒酒,一杯無毒.blog
白衣人黑衣人其中一個必定說真話,另外一個必定說假話,但不知道誰真誰假.數學
勃雷兩人分別能夠對白衣人黑衣人問一個問題(也就是總共能夠問四個問題,王勃分別問白衣人,黑衣人一個問題,孫紅雷分別問白衣人,黑衣人一個問題)變量
請問,如何才能分辨出哪杯酒無毒.程序
電影裏的"大傻"孫紅雷機靈了一回,第一個問題問白衣人,我是男人嗎?獲得了否認的答案.從而知道白衣人的回答永遠假.而後就能夠用剩下的三個問題決定其中三杯酒的屬性.im
這個場景一下使我想到了大學期間一個同窗和我說的一個真假老人的問題.img
有兩條路,一條死路,一條生路.有兩個老人,一個真老人,一個假老人.如今不知道哪條路是生路,也不知道哪一個老人是真老人. 問怎麼只問一個問題就肯定哪條路是生路.解決方案
辦法就是問其中一個老人,另外一我的會說哪條路是生路. 而後選擇回答的另外一條路. 由於假如你問的是真老人,那麼他會把假老人的話真實地告訴你,而後你獲得的就是假老人的話. 若是你問的是假老人,他就會將真老人的話變假後再告訴你.全部不論怎樣,獲取的都是假答案,而後選另外一條路便是生路.co
就像程序裏兩個變量a,b,其中一個假一個真,二者取並後,結果必定是假.ps
參考上面的思路,用三個問題就能夠搞定. 這樣問:隨便問白衣人或黑衣人,另外一人會說這杯酒有毒仍是無毒,獲得的答案取反便可. 由於不管是白衣人仍是黑衣人總有一人說真,一人說假. 因此將他們的答案綜合起來後,就必定是假.
全部用這種方式後,就不須要問「我是男人」這樣的問題了, 直接問酒的屬性便可. 那麼用三個問題便可肯定三杯酒的屬性,而後再用排除法肯定另外一杯.
可否再「極限挑戰」一下,只用兩個問題呢?
解決方案是用二分法.
第一個問題,同時問兩杯酒是否有毒?
而後就能夠同時肯定兩杯酒的屬性
第二個問題,在沒有毒的兩杯中問一個便可.
最後,終極挑戰,能否只用一個問題就100%獲取答案... 這個估計得用到量子邏輯學了(本人臆想出來的一門將來學科).
最後的最後, 將數學和程序稍微用在其它領域就能夠發揮出巨大的效能.