找毒药

假设:
有15瓶水,其中有一个毒药,请问至少使用几只小白鼠可以一次性试喝出来。

(15)d转换成二进制为1111,二进制表示0-15,一共有16种,2^4 = 16种,用四位二进制表示,因此使用4只老鼠一次性就可以将毒药试喝出来,因此使用四只老鼠,编号分别问1,2,3,4,分别喝对应第几位上数值为1的水。

如图表示,

当第一只老鼠中毒,表示编号为1的水为毒药。

当第一只、第二只、第三只、第四只老鼠一起中毒,表示编号为15的水是毒药。

当第一只、第二只老鼠一起中毒,表示编号为3的水是毒药。

当第一只、第三只老鼠一起中毒,表示编号为5的水是毒药。

以此类推,就可以知道编号为多少的水有毒

posted @ 2020-12-15 15:51  Demo4  阅读(105)  评论(0编辑  收藏  举报