• 用小白鼠找毒药


     有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 次方个瓶子中检验出毒药来。

  • 相关阅读:
    JavaScript表单编程
    JavaScript事件模型
    DOM总结
    CSS3 媒体查询响应式布局
    BOM总结
    JS实现文字图片无缝滚动
    深入理解jQuery事件绑定机制
    被你忽略的jQuery常用方法“特异功能”
    关于BOM的学习总结
    Hello,World!
  • 原文地址:https://www.cnblogs.com/hooo-1102/p/11813643.html
Copyright © 2020-2023  润新知