有100瓶水,其中有一瓶有毒,小白鼠只要尝到一点有毒的水3天后就会死亡,至少要多少只小白鼠才能在3天内鉴别出哪瓶水有毒?
解读
每个老鼠只有死或活2种状态,因此每个老鼠可以看作一个bit,取0或1N个老鼠可以看作N个bit,可以表达2^N种状态(其中第n个状态代表第n个瓶子有毒)因此所有老鼠能表示的状态数能大于等于100即可。
let n = 1;
while (Math.pow(2,n) < 100) {
n++;
}
console.log(n);
答案为:7
有100瓶水,其中有一瓶有毒,小白鼠只要尝到一点有毒的水3天后就会死亡,至少要多少只小白鼠才能在3天内鉴别出哪瓶水有毒?
解读
每个老鼠只有死或活2种状态,因此每个老鼠可以看作一个bit,取0或1N个老鼠可以看作N个bit,可以表达2^N种状态(其中第n个状态代表第n个瓶子有毒)因此所有老鼠能表示的状态数能大于等于100即可。
let n = 1;
while (Math.pow(2,n) < 100) {
n++;
}
console.log(n);
答案为:7