zoukankan      html  css  js  c++  java
  • 小白鼠以身试毒

    已知有8瓶水,其中1瓶有毒, 拿小白鼠做试验,药效发挥需要2小时时间,才能让白鼠死.现在给你2小时时间,
    问:最少,需要几只老鼠?

    度娘之,在CSDN上找到一个解答,冒昧引用,此是答案链接

    内容同以下。

    有1000瓶水,其中一瓶有毒,小白鼠喝后24小时内死亡.问最少用多少只小白鼠可以在24小时内找出哪瓶水有毒呢.
    分析:此问题的模型就是用多少二进制位可以表示1000内的一个数字.回答这个模型就简单了,1000表示为二进制表示1111101000.最大的1000用10位就中了,那么检验这1000瓶水要10只小白鼠.
    那么要怎么样检验呢?1000瓶水太多了,我们用8瓶水说明情况(此时需要3只小白鼠).好像下面的图叫做平衡二叉树。如下:


    所有小白鼠只喝右分支的水(要是左的话水编号要从右到左增加). 也就是  //为何?
    鼠1喝水4,5,6,7的混合液体
    鼠2喝水2,3,6,7的混合液体
    鼠3喝水 1,3,5,7的混合液体 
    貌似水0没有老鼠喝,若一只白鼠都没有死则说明水0有毒了.
    这样小白鼠死亡表示1,不死亡表示0。鼠1,鼠2,鼠3组成个三位二进制,

     
    000对应水0有毒
    001对应水1有毒

    111对应水7有毒


    1000瓶水和这个原理一样用十个小白鼠就找到哪瓶水有毒了.。

  • 相关阅读:
    2019南京网络赛 D Robots 期望dp
    【ICPC2019银川站】K
    【ICPC2019南昌站】I
    【SEERC 2019】E
    电子取证知识和经验总结
    CCPC2020绵阳站游记
    【CCPC2020绵阳站】J
    【CCPC2020绵阳站】K
    【SWERC 2019-20】K Birdwatching
    【HAOI2012】容易题
  • 原文地址:https://www.cnblogs.com/w-five/p/3563930.html
Copyright © 2011-2022 走看看