毒药和蒸馏水
来源:互联网 发布:马刺 米尔斯 知乎 编辑:程序博客网 时间:2024/04/29 03:25
问题:
假设我们有很多瓶无色的液体(比如瓶数大于100瓶),其中有一瓶是毒药,其它都是蒸馏水,实验的小白鼠喝了以后会在5分钟后死亡,而喝到蒸馏水的小白鼠则一切正常。现在假设只有5只小白鼠,请问一下,我们用这五只小白鼠,5分钟的时间,最多能够检测多少瓶液体的成分?
分析:
这道题的解法非常的巧妙,它使用了二进制来标注每一瓶液体。
第一瓶标号是 00001,
第二瓶标号是 00010,
第三瓶标号是 00011,
.....
第31瓶标号是 11111,
然后,让第一只老鼠喝下第一个位数为1的所有液体,让第二只老鼠喝下第二位为1的所有液体,。。。,让第5只老鼠喝下第五位为1的所有液体,那么最后根据所有老鼠的状态,我们就可以唯一分辨出哪一瓶是毒药。
比如:
第二只老鼠和第三只老鼠嗝了, 那么,很明显, 毒药的编号一定是 01100,因为如果毒药的编号是 01000,那么第三只老鼠不会死,同理,如果毒药的编号是 01110,那么,应该有三只老鼠会死亡。 如果所有的老鼠都没有死亡,那么毒药一定存在于剩余的其它瓶液体里。所以,通过死亡老鼠的编号,我们可以确认毒药的编号。
转载请注明出处:blog.csdn.net/beiyetengqing
- 分辨毒药和蒸馏水
- 毒药和蒸馏水
- 小白鼠和毒药
- 老鼠和毒药问题
- 毒药
- Google牌...蒸馏水?
- 毒药和老鼠的面试题
- 老鼠毒药问题和它的扩展
- 警犬和毒药、苹果、金条,问题解析思路
- 找毒药
- 检测毒药
- 感情毒药
- 心灵毒药
- Linux是毒药
- 中了爱情毒药
- 软件外包的毒药
- 现代社会有三粒毒药
- 老鼠与毒药问题
- 寻找数组中的最大值和最小值(编程之美2.10)
- poj 2984
- 数据结构 离散事件模拟 银行等待时间
- sessionFactory的工具类
- GCC总结
- 毒药和蒸馏水
- Oracle知识点总结—scott表结构与简单查询
- 哈希表对字符串的高效处理
- 如何学好3D游戏引擎编程
- Oracle知识点总结—单行函数
- 3D游戏引擎的基本架构
- 不要根据MemcacheClient的delete结果来决定是否删除数据库记录
- 文件压缩
- 十大游戏引擎排名