有15个一模一样的瓶子,其中有14瓶是普通的水,有1瓶是毒药。任何喝下毒药的生物都会在一天之后死亡。现在,你只有4只小白鼠和一天的时间,如何检验出哪个瓶子里有毒药?
首先想到的是24=16,思路如下:
将15转换0B1111,从0001到1111有15个数给15个瓶子编号,给4只老鼠编号A、B、C、D,是否喝了该瓶里面的水,喝为1,没喝为0。图示如下:
D C B A
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
...
按照图示的方法给老鼠们喝水,看老鼠的死亡数和顺序就可以知道哪个瓶子里有毒药了。