1.问题描述:有1000个一模一样的瓶子,其中有999瓶是普通的水,有1瓶是毒药。
任何喝下毒药的生命都会在一星期之后死亡。现在你只有10只小白鼠和1个星期的时间,如何检验出哪个瓶子有毒药?
解答:
根据2 ^ 10 = 1024,所以10个老鼠可以确定1000个瓶子具体哪个瓶子有毒。具体实现跟3个老鼠确定8个瓶子原理一样.000
= 0
001 = 1
010 = 2
011 = 3
100 = 4
101 = 5
110 = 6
111 = 7
一位表示一个老鼠,0-7表示8个瓶子。也就是分别将1,3,5,7号瓶子的药混起来给老鼠1吃,2,3,6, 7号瓶子的药混起来给老鼠2吃,4,5,6,7-号瓶子的药混起来给老鼠3吃,哪个老鼠死了,相应的位标为1.如老鼠1死了,老鼠2没死,老鼠3死了,那么就是101 = 5号瓶子有毒。
同样道理10个老鼠可以确定1000个瓶子。
此外,还有各种奇葩解答:
如图1所示,将10只老鼠剁成馅儿,分到1000个瓶盖中,每个瓶盖倒入适量相应瓶子的液体,置于户外,并每天补充适量相应的液体,观察一周,看哪个瓶盖中的肉馅没有腐烂或生蛆。
2,1000个瓶子,每个老鼠就得喝500口 - 结论:所有的老鼠都在喂药过程中被撑死了。