有 1000 个一模一样的瓶子,其中有 999 瓶是普通的水,有一瓶是毒药。任何喝下毒药的生物都会在一星期之后死亡。现在,你只有 10 只小白鼠和一星期的时间,如何检验出哪个瓶子里有毒药?

用二进制0和1来表示某只老鼠喝与没喝某瓶液体。

假设第一个瓶子第一只老鼠喝了,其他老鼠都没喝,记为

0000000001

第二瓶第二只老鼠喝了,其他老鼠都没喝,记为

0000000010

.........

10只老鼠每只每瓶液体有2种情况,0和1,那就有2的10次方1024种情况

1024种情况,每个瓶子对应一种情况,1000瓶液体就对应其中1000种情况

    第一瓶:0000000001

    第二瓶:0000000010

    第三瓶:0000000011

    第四瓶:0000000100

    第五瓶:0000000101

    第六瓶:0000000110

    第七瓶:0000000111

    第八瓶:0000001000

    ...................

    第一千瓶:1111101000


假设最终1、2、5、7、10 号老鼠死亡,那么二进制为 1100101001,说明 809 号瓶子有毒。

你可能感兴趣的:(有 1000 个一模一样的瓶子,其中有 999 瓶是普通的水,有一瓶是毒药。任何喝下毒药的生物都会在一星期之后死亡。现在,你只有 10 只小白鼠和一星期的时间,如何检验出哪个瓶子里有毒药?)