zoukankan      html  css  js  c++  java
  • 用小白鼠找毒药

     有1000个一模一样的瓶子,其中有999个装的是普通的水,有一瓶装的是无色无味的毒药;这瓶毒药在小白鼠喝完之后一周就会发作死亡;你有10只小白鼠和一周的时间。请问如何找到这瓶毒药?

    解答:10只老鼠,刚刚好2的10次方等于1024,是大于1000的。也就是说,可以用10只老鼠的生死(生死可以用1、0表示)来确定1000以内的任何一个数字。

    具体思路:把1000个瓶子可以按二进制数排序,是1的位就让对应的老鼠去喝,0则不喝。老鼠也可以排个号,从m1,m2到m10,假如编号为0010101100(172)这瓶水有毒,m3,m5,m7,m8老鼠喝了这瓶水,也就是说可以通过这四只老鼠死了,其余的老鼠没死,确定这瓶水有毒。

              m1 m2 m3 m4 m5 m6 m7 m8 m9 m10

    1         0   0     0    0    0    0    0    0    0     1

    2         0    0    0    0    0    0    0    0    1     0

    172     0    0    1    0    1    0    1    1    0     0  

    结论:n 只小白鼠 t 周的时间可以从 (t+1)的n 次方个瓶子中检验出毒药来。

  • 相关阅读:
    如何修炼成某一领域的高手?
    宝宝为什么见生人就哭
    绩效管理
    《管理3.0》读书笔记
    卡特尔16PF性格测试与答案
    管理3.0
    偶感
    Javascript事件总结
    HTML5中与页面显示相关的API
    毕业了五年了--- 人生感想
  • 原文地址:https://www.cnblogs.com/hooo-1102/p/11813643.html
Copyright © 2011-2022 走看看