實驗概述
你有1000個瓶子,其中有1瓶是毒藥,其他999瓶是水,且毒藥的形態和水一樣,從外觀上與水沒有差異。小白鼠喝了毒藥以後會在一週後死亡。現在你有10只小白鼠,和一週的時間,試問如何在一週的時間裏找出這瓶毒藥。
分析
由於小白鼠只有10只,不可能簡單的讓每隻小白鼠都喝這1000個瓶子裏的液體,所以我們需要想辦法讓這10只小白鼠和1000個瓶子產生聯繫。
解答
將1000個瓶子編號爲1~1000,2的10次方爲1024>1000,所以能想到用二進制方法來表示。
瓶子編號 | 小白鼠排列 |
---|---|
1 | 0000000001 |
2 | 0000000010 |
3 | 0000000011 |
··· | ··· |
888 | 1101111000 |
··· | ··· |
1000 | 1111101000 |
如上列表所示,將小白鼠依次編號,從左往右依次是第10只、第9只···第1只。接下來給小白鼠按列表喝瓶子裏的水,例如第一瓶給第一隻喝,第二瓶給第二隻喝,第三瓶給第一隻以及第二隻喝······第888瓶給第10、9、7、6、5、4只喝。一週以後,由於小白鼠喝了毒藥會死亡,所以根據最後的小白鼠的存活情況可以確定哪一瓶是毒藥。