小白鼠喝毒水的问题。

一道经典的面试题目:1000瓶水中找毒水,至少需要多少只小白鼠?通过数学归纳法证明至少需要10只。此问题与海明码的编码规则相似,可以通过奇偶校验定位有毒水。每只小白鼠对应一个校验位,通过校验位的奇偶性判断哪瓶水有毒。
摘要由CSDN通过智能技术生成

  有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出哪瓶水有毒?

这是一道很经典的面试题目,先说解题方法吧,2^n >= 1000,其中n就是小白鼠的数量。如果知道答案了,也许很多人就恍然大雾,当然有些专业的人士用下面的归纳法证明了下:

1)当n=1时,即有2瓶水,任取一瓶水喂老鼠,若24小时后老鼠死,则此瓶水有毒;若24小时后老鼠没死,则此瓶水无毒,另一瓶水有毒。课件只需一个老鼠即可判断出哪瓶有毒。即当n=1时命题成立。

2)假设当n=k(k>1)时,命题为真。即须k只老鼠即可判断出哪瓶水有毒。
   则当n=k+1时,即有2^(n+1)瓶水。
   将水分成2组,命名为P1和P2,每组2^n瓶水.
   则这两组瓶中有一组全没毒,另一组中有仅一瓶有毒。
   a) 取1只老鼠、任取一组瓶子,假设为P1,将P1中的全部瓶子水都让老鼠尝一下。则24小时后可以根据此老鼠的生死情况判断毒药在哪一组。
   b) 取k只老鼠,根据假设可知当n=k时,可判断哪瓶水有毒。用这k只老鼠同时去检测P1和P2,则24小时后可挑出P1中的某一瓶和P2中的某一瓶,这两瓶可能有毒。
   根据a、b中的结果综合分析࿰

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值