十只老鼠和一千瓶毒药的故事

问题描述:有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口——结论:所有的老鼠都在喂药过程中被撑死了。

十只老鼠和一千瓶毒药的故事相关推荐

  1. 十只老鼠和一千瓶毒药的故事。。。

    问题描述:有1000个一模一样的瓶子,其中有999瓶是普通的水,有1瓶是毒药. 任何喝下毒药的生命都会在一星期之后死亡.现在你只有10只小白鼠和1个星期的时间,如何检验出哪个瓶子有毒药? 解答: 根据 ...

  2. 十只老鼠在1000瓶药水中找一瓶有毒的

    /*** 十只老鼠试验一千瓶药水,只有一瓶有毒,怎么找出有毒的那瓶?** 1000,转为二进制为11 1110 1000,共十位,每只老鼠各对应一位,* 比如3的二进制为0011,第1.2上为1,就让 ...

  3. 7只老鼠找除100瓶水的有毒的水

    package com.test;import java.util.ArrayList; import java.util.List;/*** @ClassName* @Description* @A ...

  4. 算法笔记——15个瓶子,4只老鼠,测试哪瓶有毒

    看到今天一道算法题,就写了一下自己的思路,希望有大牛,看到这个题,能提出更好的想法,再进行交流学习,我只用了一点简单的C++ 进行实现 有15个瓶子,其中最多有一瓶有毒,现在有四只老鼠,喝了有毒的水之 ...

  5. 一千瓶酒有一瓶酒有毒药,问你最少用多少只老鼠可以找出那瓶毒酒? 老鼠毒发的时间在两小时内,要求在两个小时内找出毒酒。

    题目: 一千瓶酒有一瓶酒有毒药,问你最少用多少只老鼠可以找出那瓶毒酒? 老鼠毒发的时间在两小时内,要求在两个小时内找出毒酒. public class Demo03 { public static v ...

  6. 1000瓶药中找出一瓶毒药,10只老鼠做试验

    题目如下:现有1000瓶药,其中有一瓶毒药,喝了之后1小时后才产生效果,现在你有10只老鼠和1个小时的时间,请问怎么找出毒药? 题解:这道题明显就是只能一开始就把所有药都喂给10只老鼠,1小时后就直接 ...

  7. D28 1000瓶药中找出一瓶毒药,10只老鼠做试验

    题目:现有1000瓶药,其中有一瓶毒药,喝了之后1小时后才产生效果,现在你有10只老鼠和1个小时的时间,请问怎么找出毒药? 解题: 这道题明显就是只能一开始就把所有药都喂给10只老鼠,1小时后就直接一 ...

  8. c语言:1000瓶水,有一瓶是有毒的,现共有10只老鼠,怎么判断毒水?

    问题:1000瓶水,其中有一瓶是有毒的,一只老鼠喝下毒水会一天之后死亡,现在共有10只老鼠,怎么判断哪一瓶水是毒水? 分析:2^10=1024,则可以考虑利用二进制求解 解:给1000瓶水依次标号1至 ...

  9. 计算机求职面试智力题:找毒药(一共n瓶水,仅有一瓶是毒药),求至少需要多少只老鼠/猪;或者求x只老鼠/猪最多可以搜索多少瓶水

    先说结论: 假设仅1瓶存在毒药的情况下,x只老鼠/猪只经过一次测试最多可以从2^x瓶里找出来: 其加强版本,假设仅1瓶存在毒药的情况下,若一只老鼠/猪喝下后会在m分钟后死去,限时要在p分钟内寻找出来, ...

最新文章

  1. 判断三角形java代码_小猿圈Java循环嵌套语法的使用介绍
  2. numpy数组如何将数组中的元素批量保留小数(或精确到指定位)?np.around()函数(与np.round()函数等价?)
  3. python机器学习库_Python机器学习库 Top 10,你值得拥有!
  4. Seata 1.4.0 重磅发布
  5. 深度学习及AR在移动端打车场景下的应用
  6. sed很强大的文本操作命令
  7. python去重复记录_python如何处理重复值数据?
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的医院挂号系统
  9. 政府部门和金融行业已成网络攻击的最大目标
  10. Android实现抖音去水印
  11. 史上最简单的word文档docx文档解密方法,忘记word文档docx密码怎么办?
  12. LOJ 6131 Fiend - 行列式 - 可并堆 - 贪心
  13. linux下格式化SD卡
  14. 计算机视觉 python 解图片数独题
  15. 基于OpenCV的人脸识别考勤系统(三)
  16. 核桃编程学员对话诺贝尔奖得主 用童心预见未来 探讨人工智能发展
  17. 由浅入深了解羚珑平台统一接入服务 —— Monet
  18. java 保存在_Java存储到什么地方
  19. 杰理之设置恒流充电电流【篇】
  20. 国培_阶段性学习总结

热门文章

  1. MemSQL分布式架构介绍
  2. SQLite数据库的下载及安装步骤
  3. C++ 之学习大纲网址:文档:C++ knowledge.note 链接:http://note.youdao.com/noteshare?id=c786848810ceb817ae61b76c6bf
  4. 用友BIP对接外部旺店通企业版奇门系统
  5. 计算机一级vlookup函数的使用方法,电子档Excel中vlookup函数的使用方法(图解详细说明)...
  6. RabbitMQ ERROR: could not bind to distribution port 25672, it is in use by another node: rabbit@DESK
  7. grafana graphite statsd搭建安装部署 实时监控_亲测成功
  8. SAP BW报表使用操作手册——系统登录
  9. 【Rosalind】Rabbits and Recurrence Relations
  10. linux Apache安装