假設我們有很多瓶無色的液體(比如瓶數大於100瓶),其中有一瓶是毒藥,其它都是蒸餾水,實驗的小白鼠喝了以後會在5分鐘後死亡,而喝到蒸餾水的小白鼠則一切正常。現在假設只有5只小白鼠,請問一下,我們用這五隻小白鼠,5分鐘的時間,最多能夠檢測多少瓶液體的成分?
分析:
這道題的解法非常的巧妙,它使用了二進位制來標註每一瓶液體。
第一瓶標號是 00001,
第二瓶標號是 00010,
第三瓶標號是 00011,
.....
第31瓶標號是 11111,
然後,讓第一只老鼠喝下第乙個位數為1的所有液體,讓第二隻老鼠喝下第二位為1的所有液體,。。。,讓第5只老鼠喝下第五位為1的所有液體,那麼最後根據所有老鼠的狀態,我們就可以唯一分辨出哪一瓶是毒藥。
比如:第二隻老鼠和第三隻老鼠嗝了, 那麼,很明顯, 毒藥的編號一定是 01100,因為如果毒藥的編號是 01000,那麼第三隻老鼠不會死,同理,如果毒藥的編號是 01110,那麼,應該有三隻老鼠會死亡。 如果所有的老鼠都沒有死亡,那麼毒藥一定存在於剩餘的其它瓶液體裡。所以,通過死亡老鼠的編號,我們可以確認毒藥的編號。
**:blog.csdn.net/beiyetengqing
小白鼠和毒藥
有15個一模一樣的瓶子,其中有14瓶是普通的水,有1瓶是毒藥。任何喝下毒藥的生物都會在一天之後死亡。現在,你只有4只小白鼠和一天的時間,如何檢驗出哪個瓶子裡有毒藥?首先想到的是24 16,思路如下 將15轉換0b1111,從0001到1111有15個數給15個瓶子編號,給4只老鼠編號a b c d,...
小白鼠 測驗毒藥問題
1。1000瓶藥,有一瓶汙染了並有毒,選用最少的小白鼠一次測試出哪一瓶是有毒的。若有毒,小白鼠7天後死掉,7天做測試時間 對每一瓶藥進行編號,並根據編號的二進位制數值,位1的讓相應的小白鼠喝,需要10位二進位制數來表示1000,所以需要10只小白鼠 7天後,看哪幾位對應的小白鼠死掉,則可以得到有毒的...
小白鼠 測驗毒藥問題
1.1000瓶藥,有一瓶汙染了並有毒,選用最少的小白鼠一次測試出哪一瓶是有毒的。若有毒,小白鼠7天後死掉,7天做測試時間 對每一瓶藥進行編號,並根據編號的二進位制數值,位1的讓相應的小白鼠喝,需要10位二進位制數來表示1000,所以需要10只小白鼠 7天後,看哪幾位對應的小白鼠死掉,則可以得到有毒的...