找毒药
假设:
有15瓶水,其中有一个毒药,请问至少使用几只小白鼠可以一次性试喝出来。
(15)d转换成二进制为1111,二进制表示0-15,一共有16种,2^4 = 16种,用四位二进制表示,因此使用4只老鼠一次性就可以将毒药试喝出来,因此使用四只老鼠,编号分别问1,2,3,4,分别喝对应第几位上数值为1的水。
如图表示,
当第一只老鼠中毒,表示编号为1的水为毒药。
当第一只、第二只、第三只、第四只老鼠一起中毒,表示编号为15的水是毒药。
当第一只、第二只老鼠一起中毒,表示编号为3的水是毒药。
当第一只、第三只老鼠一起中毒,表示编号为5的水是毒药。
以此类推,就可以知道编号为多少的水有毒