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

根据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个瓶子。【题目做了个巧妙的障眼,把1024改成1000】

如果你有两个星期的时间(换句话说你可以做两轮实验),为了从1000个瓶子中找出毒药,你最少需要几只老鼠?注意,在第一轮实验中死掉的老鼠,就无法继续参与第二次实验了。

答:7只老鼠就足够了。事实上,7只老鼠足以从 3^7 = 2187 个瓶子中找出毒药来。首先,把所有瓶子从0到999编号,然后全部转换为7位三进制数。现在,让第一只老鼠喝掉所有三进制数右起第一位是 2 的瓶子,让第二只老鼠喝掉所有三进制数右起第二位是2的瓶子,等等。一星期之后,如果第一只老鼠死了,就知道毒药瓶子的三进制编号中,右起第一位是2;如果第二只老鼠没死,就知道毒药瓶子的三进制编号中,右起第二位不是2,只可能是0或者1……也就是说,每只死掉的老鼠都用自己的生命确定出了,三进制编号中自己负责的那一位是2;但每只活着的老鼠都只能确定,它所负责的那一位不是2。

于是,问题就归约到了只剩一个星期时的情况。在第二轮实验里,让每只活着的老鼠继续自己未完成的任务,喝掉它负责的那一位是 1 的所有瓶子。再过一星期,毒药瓶子的三进制编号便能全部揭晓了。

总结:n只小白鼠和t周的时间可以从(t+1)^n个瓶子中检验出毒药(一瓶)来。(

8个瓶子,1只老鼠但有3条命,时间限制3个星期

老鼠先喝右起第1为为1的药,死了则缩小到1、3、5、7号瓶子,用时一周;第二周,和右起第2位为1的瓶子,一次类推。

1000个瓶子和10只老鼠问题浅解相关推荐

  1. 智力题:1000瓶酒.10只老鼠.有一瓶酒有毒,每只老鼠可以喝无限多的酒,如何测一次就找出哪瓶酒有毒

    这是一道面试的智力题目: 每瓶给一个编号.把编号做成二进制. 2的10次方=1024 (最多可以一次性检验1024瓶). 老鼠也排成一排,编号 1-10 把1000瓶都给小老鼠喝掉 (二进制为1的就喝 ...

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

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

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

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

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

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

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

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

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

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

  7. 10只老鼠10只杯检测1000瓶酒中的毒酒

    二进制真是好东西..... 现有1000瓶葡萄酒,只知道其中有一瓶是毒酒,但不知道是哪瓶,喝一点点毒酒,就会致命.不想因此浪费这1000瓶酒. 故给出10只老鼠,10只杯,一次性找出那瓶酒. Solu ...

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

    面试题:1000瓶水其中有一瓶水有毒,有10只老鼠并且只要老鼠喝了有毒的水必死.请问怎样通过一次实验找出有毒的那瓶水. 1.  知识点:二进制. 解题思路:此题考察的是二进制.2的10次方等于1024 ...

  9. 1000瓶水和1瓶毒水还有10只老鼠

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

最新文章

  1. cmd orcal 中文乱码
  2. xpath+多进程爬取网易云音乐热歌榜。
  3. HttpURLConnection与 HttpClient 区别/性能测试对比
  4. .NET Core扩展IServiceCollection自动注册服务
  5. 删除xenserver的iso库
  6. 万维网文档在服务器端动态,信息网络应用基础作业2.docx
  7. EasyRecovery---ppt恢复技巧
  8. @retention注解作用_前端初学SpringBoot系列(三)自定义注解的学习与练习
  9. 2021华科计算机考研复试机试 与 复试经验分享
  10. handsome主题魔改
  11. 在控制台下刻录CD(转)
  12. Nerv实战 - 京东首页改版小结
  13. 好玩的WPF第二弹:电子表字体显示时间+多彩呼吸灯特效button
  14. oracle登录 报ora00604,oracle 表空间不足 ORA-00604 ORA-01653 ORA-02002 ORA-00604 ORA-01653
  15. PDF文档用什么软件打开?
  16. 如何提高文献检索能力?
  17. java 时分秒加减_JAVA日期加减运算
  18. 全球与中国工业级氟化氢铵市场现状及未来发展趋势2022
  19. 高等工程数学(张韵华,汪琥庭,宋立功)—— 第二篇:数值计算
  20. MSXML应用总结 开发篇(下)

热门文章

  1. Docker 搭建 LNMP + Wordpress
  2. CMake添加pthread.h
  3. 高职c语言技能试题,高职上机C语言试卷A.doc
  4. 真实的北京IT圈:后厂村姑 vs 后厂村花?
  5. godot 顶级游戏引擎
  6. 歌词同步滚动,比市面的大多数效果都好,在平滑滚动的前提下加上了鼠标滚轮滚动以及上下拖拽功能
  7. Amazing grace 奇异恩典
  8. C端产品经理面试攻略
  9. 章鱼体验第一天:思杰VDI之7.14.1
  10. ceph v15.2.13版本[octopus]分布式集群部署