答案是10只
本題采用了二進制的思想
小白鼠的生與死可以看作二進制的0和1,
用10只小白鼠,也就是10個二進制位,最多可以表示1024個數,
編號環節
先給藥水從001到1000編號,每個藥水編號轉化成二進制,(如下圖)

給小白鼠按照二進制位數編號a b c d e f g h i j,其中a對應二進制最高位,j對應最低位,

喝藥環節
每個藥品的二進制編號中,為一的位數對應的小白鼠要喝此藥

比如編號為001的藥水,對應二進制位00000 00001,則j號小白鼠要喝001編號藥;
…
編號為029的藥水,對應二進制位00000 11101,則fgh j號小白鼠要喝029編號的藥(j號小白鼠要同時喝下001和029編號的藥);
…
編號為999的藥水,對應二進制位11111 01000,則abcde hij號小白鼠要喝999編號的藥,
每個編號的藥水都有對應的小白鼠喝,同樣的每個小白鼠也要喝不同編號的藥,
結果環節
一周后,最后看哪些小白鼠死了,死了的小白鼠代表其二進制位為0,活著的就是1,按照編號轉化成十進制就可以找到有毒的那一瓶,
比如,h和j小白鼠死了,其二進制就是00000 00101,轉化成十進制就是005,則編號為005的藥水是有毒的,
如果,abcd fg號小白鼠都死了,其對應的二進制就是11110 11000,轉換成十進制就是984,則編號為984的藥水是有毒的,
總結
本方法雖然能利用二進制,用很少的小白鼠測出了1000瓶藥水中有毒的那一瓶,但是本方法也只是理論上有用,實際操作可能并不可行,
因為藥品發揮毒性一定是需要一定計量的,這10只小白鼠每一只都攝入數十份甚至上百份的藥品計量,例如最低位 i 號小白鼠需要服用500份的藥品計量,如此,即便500份都沒毒,撐也撐死了,
所以,理論是理論,實踐是實踐,正經測毒性還是要用更多的小白鼠,或者采用化學成分分析等方式測毒,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/293776.html
標籤:其他
上一篇:【演算法】用習題教你如何使用動態規劃,超詳細,一看就會!!建議收藏!!
下一篇:嵌入式開發中的防御性C語言編程
