1000 个瓶子中有一瓶毒药,一只老鼠吃到毒药一周之内会死,如果要在一周之内检测出有毒药的一瓶,问至少需要几只老鼠?

思路:一个简单的思路是利用二进制来解决类似问题,首先看2^10 > 1000,也就是说这类问题只要由所有老鼠组成的二进制的数大于总的瓶子个数一般就能解决此类问题,当然还要注意细枝末节的一些问题。

那么为什么10只老鼠就能判断出那一瓶毒酒呢?

大家知道二进制数能唯一表示出一个数的情况,n位二进制数能表示的最大数是( 2^n )-1,那么此时我们以10只老鼠为例:

1                                        0000000001

2                                        0000000010

3                                        0000000011

4                                        0000000100

......

1000                                   1111101000

从上面这1000个数字想必大家都能看出,1000个数字由完全不同的二进制码组成,那么此时,我们将这1000个瓶子从1~1000编号,同时呢给10只老鼠编号0~9 ,10个数字,从后往前(符合二进制规律更方便解释)那么将1好杯子的水给下标为0的老鼠喝,第二个杯子的水给下标为1的老鼠喝,第三个杯子 的水给下标为0和1的老鼠和,...实际上就是杯子编号对应的二进制数字哪位为1就给哪只老鼠喝,因为这是唯一的标志,所以一段时间过后,任然按照原来老鼠的序列,死了的老鼠为数字1,没死的为0,由他们组成的二进制数字代表几,那么就是第几杯水有毒。

【注意:有时候会让用杯子融合技术,给小老鼠喝,其实和上面本质一样的,竖着从1~1000,将所有从第0~9为,为1的杯子拿出来分别取出一滴按照0~9的顺序融合到杯子里,分别给0~9只老鼠喝,然后二进制计数,死了为1,否则为0,也能判断出有毒的杯子,呵上面实质同理的】

1000只老鼠与毒药的类型问题相关推荐

  1. 1000瓶水里有1瓶毒药,10只老鼠能试出来吗?

    今天在网上看到一道题,据说是微软的测试题 当然能,只要1只老鼠就够了,让它一瓶一瓶地试,直至试出毒药. 不过,我们也要考虑效率,是不是?比如,毒药是1小时后才发作,那怎样用最短的时间来找出毒药? 我们 ...

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

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

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

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

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

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

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

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

  6. 1000个瓶子和10只老鼠问题浅解

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

  7. 10只老鼠与1000瓶药水

    题目:1000 瓶无色无味的药水,其中有一瓶毒药,10只小白鼠拿过来做实验.喝了无毒的药水第二天没事儿,喝了有毒的药水后第二天会死亡.如何在一天之内(第二天)找出这瓶有毒的药水? 思路:10只小白鼠, ...

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

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

  9. 1000瓶水其中有一瓶水有毒,有10只老鼠并且只要老鼠喝了有毒的水必死。请问怎样通过一次实验找出有毒的那瓶水。

    1000瓶水其中有一瓶水有毒,有10只老鼠并且只要老鼠喝了有毒的水必死.请问怎样通过一次实验找出有毒的那瓶水. . 这道题知识点:二进制. 解题思路:2的10次方等于1024,1024以内的所有自然数 ...

最新文章

  1. 什么是结构风险?在决策树类相关算法中通常有哪些正则化参数来控制模型的结构风险?解读一下
  2. fzu 1901 next+脑洞
  3. python爬虫实战案例-Python爬虫实战案例:手机APP抓包爬虫
  4. 设计模式-生产者消费者模式
  5. 001_html简介
  6. PHP如何复制前端传递的json数据
  7. java 枚举的实现原理
  8. 网易丁磊:给我100个亿,也不会躺平
  9. vue向ifarm传值_vue组件间传值
  10. 编程调节Win7/Win8系统音量的一种方法
  11. python顺序查找的递归算法_Python实现查找算法
  12. java两个和三个_H2DB和Java,大约两个小时的差异
  13. 中国各地区工业COD排放量面板数据(1998-2017年)
  14. Android技术点滴记录
  15. PHP字符串运算结果,php字符运算
  16. 计算机网络英文论文,计算机网络与因特网论文(英文版)
  17. Python matplotlib 中填充颜色
  18. 忧伤岁月,挡不住四季的温暖
  19. jCO--http://www.cnblogs.com/zfswff/p/5671148.html
  20. Java 静态方法与非静态方法

热门文章

  1. 幽灵交易策略_期货软件TB系统源代码解读系列67-幽灵交易者
  2. VS中重复定义的解决方法
  3. 【读点论文】DeepFace: Closing the Gap to Human-Level Performance in Face Verification。深度学习开始对人脸下手
  4. 我的世界java版合成表_《我的世界》基础攻略 JAVA版合成系统详解
  5. ubuntu16.04 安装keepass并汉化,解决乱码问题
  6. MediaRecorder实现手机录音功能
  7. vue实战,前端如何调用手机录音功能
  8. BUG之Type interface com.zcy.mapper.UserLogMapper is not known to the MapperRegistry.
  9. 数值分析9.Approximating Eigenvalues
  10. 教你如何在dos下清除打印缓存及重启打印服务