- 超腦思維:邏輯推理游戲從入門到精通(全新升級版)
- 馬外乙
- 1815字
- 2019-10-11 18:03:56
法老與毒酒
酒是古埃及人生活中的必需品。修建吉薩金字塔的工匠們每天會飲用三四次大麥釀成的啤酒,用這種口感清淡、營養豐富的飲料為自己補充能量。相比之下,葡萄酒則顯得比較奢侈,只有上流社會的人才有機會享受這種珍貴飲品。
為慶賀自己的壽誕,法老打算大宴賓客。他邀請1000位貴客前來參加晚宴,并承諾要讓每位赴宴的貴客喝到一瓶上好的葡萄酒。為了兌現諾言,法老一早便花費重金買下1001瓶名貴美酒,至于那多出來的一瓶,自然是留給自己享用的。
誰知,在晚宴前一天的晚上,侍衛在法老宮的酒窖中捉到一個形跡可疑的人。那人供認自己是由法老的政敵派來在酒中投毒的。那是一種毒性極強的慢性毒藥,在一瓶酒中加入少許后,哪怕飲酒人只喝下其中的一滴,也會在20小時后毒發身亡,但毒發前則不會表現出任何癥狀。只是沒想到法老宮戒備森嚴,那人費盡心思潛入酒窖,結果只在一瓶酒中投毒便被侍衛捉住。
侍衛把那人身上帶著的毒藥瓶呈給法老看,果然,瓶子幾乎是滿的。謀害法老必獲死罪,看來這人自知將死其言也善,被捕后說的都是實話。
法老非常看重自己許下的諾言,不想失信于人。還好,自己不喝倒也沒關系,去掉1瓶毒酒還有1000瓶美酒,足夠招待1000位客人。問題是,連投毒者也記不清下了毒的酒是哪一瓶,該如何從這1001瓶酒中把那瓶毒酒找出來呢?
法老左思右想,決定用死囚來試毒。但沒想到的是,法老宮附近的監獄內只有9名死囚,加上那名投毒者也不過10個人。要從其他監獄押送死囚來,光在路上就要花費4個多小時,毒藥被人服下20個小時之后才會發作,而距離明晚的晚宴只有24小時,時間上來不及。
法老手下的奴隸遠不止千人。法老固然可以用奴隸來試毒,然而這就代表著要犧牲無辜之人的性命。比如,法老可以命令10名死囚和991名奴隸每人嘗一瓶美酒,可這就意味著奴隸喝到毒酒的概率大于99%,也就是說極有可能使無辜者因此喪命。法老實在于心不忍。
請問,如果你是法老,該怎樣在盡可能不犧牲無辜者的前提下趕在晚宴前找出1001瓶酒中的那瓶毒酒呢?
答案:
1001這個數字看起來有些龐大,讓我們先從小一些的數字開始思考。
(1)要找出2瓶酒中的1瓶毒酒,需要多少人以身試毒呢?
當然,1個人就夠了。給這個人嘗其中一瓶酒,20個小時后,如果這個人不幸毒發身亡,那么他嘗過的就是毒酒;反之,沒嘗過的那瓶就是毒酒。
(2)要找出4瓶酒中的1瓶毒酒,需要多少人以身試毒呢?
3個人嗎?不,2個人就夠了。這里分別用A和B代指這2個人:給A嘗第1瓶酒和第2瓶酒,給B嘗第1瓶酒和第3瓶酒,20個小時后,如果AB皆死,那么毒酒是第1瓶酒;如果A死B生,那么毒酒是第2瓶酒;如果A生B死,那么毒酒是第3瓶酒;如果AB皆生,那么毒酒是第4瓶酒。
(3)用3個人以身試毒,能夠找出多少瓶酒中的1瓶毒酒呢?
現在讓我們來進一步簡化思路。這里我們把每個以身試毒的人看作一個單位,把試毒者的“生”和“死”看作兩種不同的狀態,那么問題就變成:3個具有2種不同狀態的單位排列組合,一共可表現出多少種不同的可能性呢?
看到這里,相信有不少讀者都會想起八卦。八卦,顧名思義,就是以陽爻和陰爻排列組合,每三爻合成一卦,可以得到8種不同的卦象。同理,若有3個人以身試毒,同樣可以找出8瓶酒中的1瓶毒酒。限于篇幅,這里就不再一一列舉所有的可能性。
那么,八卦給了我們什么提示呢?如果再進一步簡化,用“1”代替陽爻、用“0”代替陰爻的話——沒錯,就是二進制。
(4)1個具有2種不同狀態的單位排列組合,所能夠表現出的可能性數量為21=2;
2個具有2種不同狀態的單位排列組合,所能夠表現出的可能性數量為22=4;
3個具有2種不同狀態的單位排列組合,所能夠表現出的可能性數量為23=8;
……
現在我們需要表現1001種可能性,而29=512<1001<210=1024,所以用10個人以身試毒就夠了。
說得具體一些,我們可以將10個人依次編號為1~10,將1001瓶酒依次編號為1~1001,然后將每瓶酒的編號以二進制表示,例如1=0000000001, 2=0000000010,3=0000000011,…,10=0000001010,…,100=0001100100,…, 1000=1111101000,1001=1111101001。
接下來,我們使1~10號死囚分別對應十進制數的第1位至第10位,如某名死囚所對應的位數在某瓶酒的二進制編號中以1表示,那么這名死囚就需要喝下該編號的酒;反之,如以0表示,則不必喝酒。例如,需要喝下1號酒的是10號囚犯,需要喝下1001號酒的是1、2、3、4、5、7、10號囚犯。
20個小時后,將毒發身亡的囚犯編號記為1、生存的囚犯編號記為0,再將所得到的二進制數轉化為十進制數,該十進制數即為毒酒編號。例如, 1、2、4、9、10號囚犯死亡,得到二進字數1101000011,轉化成十進制數為835,則835號酒為毒酒。