zoukankan      html  css  js  c++  java
  • 十只老鼠和一千瓶毒药的故事。。。

    问题描述:有1000个一模一样的瓶子,其中有999瓶是普通的水,有1瓶是毒药。

                  任何喝下毒药的生命都会在一星期之后死亡。现在你只有10只小白鼠和1个星期的时间,如何检验出哪个瓶子有毒药?

    解答:

    根据2^10=1024,所以10个老鼠可以确定1000个瓶子具体哪个瓶子有毒。具体实现跟3个老鼠确定8个瓶子原理一样。
    000=0
    001=1
    010=2
    011=3
    100=4
    101=5
    110=6
    111=7
    一位表示一个老鼠,0-7表示8个瓶子。也就是分别将1、3、5、7号瓶子的药混起来给老鼠1吃,2、3、6、7号瓶子的药混起来给老鼠2吃,4、5、6、7号瓶子的药混起来给老鼠3吃,哪个老鼠死了,相应的位标为1。如老鼠1死了、老鼠2没死、老鼠3死了,那么就是101=5号瓶子有毒。
    同样道理10个老鼠可以确定1000个瓶子。

    此外,还有各种奇葩解答:

    1、将10只老鼠剁成馅儿,分到1000个瓶盖中,每个瓶盖倒入适量相应瓶子的液体,置于户外,并每天补充适量相应的液体,观察一周,看哪个瓶盖中的肉馅没有腐烂或生蛆。

    2、1000个瓶子,每个老鼠就得喝500口——结论:所有的老鼠都在喂药过程中被撑死了。

  • 相关阅读:
    数据库更改自增和主键
    修改MySQL的默认数据存储引擎
    tomcat密码的坑
    通过System.getProperties()获取系统参数
    Java语言开发的,直接解压即可使用软件
    一个javascript面试题
    为什么学习差
    IDEA设置
    java关键字
    IDEA快捷键
  • 原文地址:https://www.cnblogs.com/wanyou/p/4445525.html
Copyright © 2011-2022 走看看