问题:现在有100瓶药,只有1瓶是有毒的,老鼠试完药后,需要3天才能才能知道药是否有毒,而现在需要3天知道100瓶中哪1瓶有毒,请问最少需要多少只老鼠。
方案:
因为2^7=128>=100,最少需要7只 将1~100转换为2进制数,一共7位。 假设对于某数的2进制为:C1 C2 C3 C4 C5 C6 C7 老鼠mi将ci为1的药都试了,若mi在3天后死了,说明毒药为2进制的第ci位为1的十进制对应的药。 如果死了C1 C2 C3,表明药的二进制的第1,2,3位都为1