答案是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份都没毒,撑也撑死了。
所以,理论是理论,实践是实践。正经测毒性还是要用更多的小白鼠,或者采用化学成分分析等方式测毒。