有趣的智力题
题干:
有 1000 瓶药物,但是其中有一瓶是有毒的,小白鼠吃了一个星期以后就会死掉!
请问,在一个星期内找出有毒的药物,最少需要多少只小白鼠?
- 先给答案:
10只
解决问题
采用了二进制的思想
小白鼠的生与死可以看作二进制的0和1。
用10只小白鼠,也就是10个二进制位,最多可以表示1024个数。
编号环节
-给小白鼠按照二进制位数编号a b c d e f g h i j。其中a对应二进制最高位,j对应最低位。
喝药环节
每个药品的二进制编号中,为1的位数对应的小白鼠要喝这瓶子药的

比如编号为001的药水,对应二进制位00000 00001,则J号小白鼠要喝001编号药;
…
编号为029的药水,对应二进制位00000 11101,则FGHJ号小白鼠要喝029编号的药(J号小白鼠要同时喝下001和029编号的药);
…
编号为999的药水,对应二进制位11111 01000,则ABCDE HIJ号小白鼠要喝999编号的药。
每个编号的药水都有对应的小白鼠喝,同样的每个小白鼠也要喝不同编号的药。
结果验证
一周后,最后看哪些小白鼠跪了,跪了的小白鼠代表其二进制位为0,活着的就是1,按照编号转化成十进制就可以找到有毒的那一瓶。
比如,H 和 J 小白鼠死了,其二进制就是00000 00101,转化成十进制就是005,则编号为005的药水是有毒的。
如果,ABCD FG号小白鼠都跪了,其对应的二进制就是11110 11000,转换成十进制就是984,则编号为984的药水是有毒的



发表评论