小白鼠试毒问题
问题描述
有30瓶酒(在面试问题中往往基数更大),其中一瓶有毒,喝了之后一周以后就会毒发死亡,请问最少用多少只老鼠可以得到有毒的那瓶酒
解决思路
先说一下答案:2^5=32>30;所以最少需要5只老鼠就可以测出来
- 五只老鼠分别编号:1、2、3、4、5。
- 三十瓶水分别编号为:1(00001) 2(00010)直到11110
编号00001号的水喂1号老鼠,编号为00101号的水喂3号和1号老鼠,一个月后把老鼠编号记录下来,按位数排列,死的写1活的写0,就能得到那瓶水有毒了,例:2号和5号老鼠死了,1号、3号、4号老鼠活着,记录为01001,即编号为01001的瓶水为毒水