經典智力題 - 老鼠試毒


1、1000瓶毒葯要至少多少只老鼠,假設每只老鼠吃了葯之后,如果中毒會24小時內毒發而死,才能找出具體的哪一瓶?

答案是至少10只,需要將葯混合起來,需要喂一輪。

題解

位運算,每一只老鼠都可以當做一個二進位,代表0和1,0代表老鼠沒事,1代表老鼠死了

根據2^10=1024,所以至少10個老鼠可以確定1000個瓶子具體哪個瓶子有毒。

為了更好的表達原理,將題目整體縮小為如何用3只老鼠確定8個瓶子(2^3 = 8)。

一位表示一個老鼠,0-7表示8個瓶子。例如5號瓶子,對應是101,那就是老鼠1和老鼠3都得吃,4號瓶子對應是100,也就是只讓老鼠3吃。

映射關系:
000 = 0
001 = 1
010 = 2
011 = 3
100 = 4
101 = 5
110 = 6
111 = 7

每一位就表示一個老鼠,右側的0-7表示8個瓶子。

例如5號瓶子,對應是101,那就是老鼠1和老鼠3都得吃;4號瓶子對應是100,也就是只讓老鼠3吃。

根據這個邏輯:分別將1、3、5、7號瓶子的葯混起來給老鼠1吃,2、3、6、7號瓶子的葯混起來給老鼠2吃,

4、5、6、7號瓶子的葯混起來給老鼠3吃,哪一只老鼠死了,相應的位置就為1。

現在對某瓶未知序號的毒葯,如果出現了情況是老鼠1死了、老鼠2沒死、老鼠3死了,這就是101情況對應5號瓶子,那么就是101=5號瓶子有毒。

按照這個原理,10個老鼠也就可以確定1000個瓶子了。


2、明天晚上21:00的宴會需要9瓶酒,酒窖里現有17瓶酒,其中有一瓶混入了慢性毒葯,只對人和老鼠有影響,吃了以后,無葯可醫,但需且僅需24小時發作。現在是晚上19:00,請問至少需要多少只老鼠才能選出宴會用的酒?

題解

晚上19點到第二晚21點,還有26小時時間,24小時毒發可以允許還有兩個小時可操作,即所有操作要在今晚21點前完成:

情況一:嚴格24小時准時毒發而死

一只老鼠,每隔幾分鍾就按順序吃一瓶酒,那到了明天晚上19點開始觀察老鼠的死亡時間,就能反推出最初是哪一瓶酒是帶毒的了。

情況二:大約24小時才會毒發而死

給17瓶酒分別從1編號到17,然后分成兩組:

1組是1-9編號的酒共9瓶,

2組是10-17編號的酒外加上從1-9編號中的任意一瓶酒,共9瓶,

則共需要兩只老鼠試喝2組中的酒,

則可能發生的結果為:

  1. 喝1組酒的老鼠死亡,則宴會用2組的9瓶酒

  2. 喝2組酒的老鼠死亡,則宴會用1組的9瓶酒

  3. 2只老鼠都死亡,則說明從1-9中拿出的那瓶酒是毒酒,則宴會使用剩余16瓶中的任意9瓶

情況二原理就是二分法,哪一組沒出事就用那一組。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM