二进制法。

题目:有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒。

 

回答:

用二进制算法。

把1000瓶水编号,每个编号写成二进制的形式,pow(2,10) = 1024 > 1000,这样每个编号就有10位。

把10只小白鼠编号,从1到10,让第N号小白鼠去喝瓶子编号第N为为1的水,

新定义一个十位二进制数,最终死掉的小白鼠的编号的位全部为1.

比如 1,3,5,7,8号小白鼠死掉了,那有毒的瓶子的二进制编号就是 1010101100

posted @ 2010-04-28 09:46  傲衣华少  阅读(529)  评论(0编辑  收藏  举报