有 1000 个一模一样的瓶子,其中有 999 瓶是普通的水,有一瓶是毒药。任何喝下毒药的生物都会在一星期之后死亡。现在,你只有 10 只小白鼠和一星期的时间,如何检验出哪个瓶子里有毒药?
512 256 128 64 32 16 8 4 2 1共1023,足够标识1000瓶子
1 1 1 1 1 1 1 1 1 1
这样子,每个瓶子都可以用一个10位的二进制表示出来;
让第一只老鼠喝最右边编号带1的瓶子,放在arr[9]号位置(比如笼子);第二只老鼠喝倒数第二个编号为1的瓶子,放在arr[8]号位置。。。等等
这样一个星期后,有毒药的瓶子编号就确定了。