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