问题:

有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒。

解答:

方法1:

用1000只小白鼠,每只喝一瓶;这很简单,但肯定不是最有效的。

方法2:

假设1000个瓶分别标上如下标签(10位长度):
0000000001 (第1瓶)
0000000010 (第2瓶)
0000000011 (第3瓶)
......
1111101000 (第1000瓶)

从编号最后一位是1的所有的瓶子里面取出1滴混在一起(比如从第一瓶,第三瓶,... ...里分别取出一滴混在一起)并标上记号为1;

从编号倒数第二位是1的所有的瓶子里面取出1滴混在一起(比如从第二瓶,第六瓶,... ...里分别取出一滴混在一起)并标上记号为2;

... ...

以此类推,从编号第一位是1的所有的瓶子里面取出1滴混在一起并标上记号为10。

现在得到有10个编号的混合液: 1, 2, 3, 4, 5, 6, 7, 8, 9.

小白鼠排排站,从左到右分别标上10,9,... ...1号,并分别给它们灌上对应号码的混合液。24小时过去了,过来验尸吧:
从左到右,死了的小白鼠贴上标签1,没死的贴上0,最后得到一个序号,把这个序号换成10进制的数字,就是有毒的那瓶水的编号。

简单检验:

假如第一瓶有毒,按照0000000001 (第1瓶),说明第1号混合液有毒,因此小白鼠的生死符为0000000001(编号为1的小白鼠挂了),0000000001二进制标签转换成十进制=1号瓶有毒;假如第三瓶有毒,0000000011 (第3瓶),第1号和第2号混合液有毒,因此小白鼠的生死符为00000011(编号为1,2的鼠兄弟挂了),0000000011二进制标签转换成十进制=3号瓶有毒。

1000瓶水,哪一瓶有毒?相关推荐

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

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

  2. 1000瓶水有1瓶水有毒,老鼠喝一滴就会死,但是需要一周毒发,请问最少需要多少老鼠多少时间才能找到那瓶有毒的水。

    1000瓶水有1瓶水有毒,老鼠喝一滴就会死,但是需要一周毒发,请问最少需要多少老鼠多少时间才能找到那瓶有毒的水. 这个题是对bit位的应用,1000接近1024,所以对1000瓶水编号需要10个bit ...

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

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

  4. 1000瓶水,1瓶有毒药,几只小白鼠能够找出

    1000瓶水,1瓶有毒药,几只小白鼠能够找出 有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒? 这道题考察的是对2进制的 ...

  5. 1000桶水,其中一桶有毒,猪喝毒水后会在15分钟内死去,想用一个小时找到这桶毒水,至少需要几头猪?具体该如何实现方法讲解

    对于此问题,一个思路是通过对问题分解: 首先一个猪在一个小时内的状态可以分为5种: 一.0分钟喝水,15分钟死去 二.15分钟活着再喝水,30分钟死去 三.30分钟活着再喝水,45分钟死去 四.45分 ...

  6. [面试题]1000瓶水中有1瓶是有毒的,问需要多少只老鼠才能试出那瓶有毒?

    问题描述: 1000瓶水里面只有1瓶是有毒的,毒发时间为1个小时,问需要多少只老鼠才能在1小时后试出那瓶有毒. 相关资料: Bloom Fliter 算法 参考思路: 210 = 1024 > ...

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

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

  8. 有 3 只老鼠,8 瓶水,其中一瓶有毒,喝到有毒的水之后,老鼠一周后会准时死亡。...

    题目 有 3 只老鼠,8 瓶药,其中一瓶有毒,喝到有毒的药之后,老鼠一周后会准时死亡.按照要求,写个算法,如何在一周内找出哪瓶有毒.(以程序语言实现,语言不限.) 基本思路 给瓶子编号 0-7,并把编 ...

  9. 关于1000桶水,其中一桶有毒,猪喝毒水后会在15分钟内死去,想用一个小时找到这桶毒水,至少需要几头猪?的问题

    这是个概率学问题,在计算机中也是个进制问题,我看了网上一些关于这个问题的解答,感觉有的人说的并不清楚,或者感觉有的写解答的人自己都没太搞清楚,回答也不对,只是因为知道答案是5硬往上套.这个问题,首先判 ...

  10. 三个瓶盖能换一瓶水,问100个人需要喝水,最少需要买多少瓶水即可解决100人的喝水问题

    1+2 -> 3 1+2+2 -> 6 1+2+2+2 -> 9 -. 100个人,3人做一组,共33组,余1人,也即100/3==33, 100%3==1,3瓶水换一瓶,也即一组需 ...

最新文章

  1. CSS 绘制各种形状
  2. 【100题】第十六题(层序打印树的节点)
  3. 在命令行窗口查看Maven版本时,出现 Error: JAVA_HOME is set to an invalid directory.的解决方法
  4. linux 内核 字符串转换函数
  5. 【乱侃】How do they look them ?
  6. mysql now unixtime_MySQL时间函数from_unixtime()date_format()unix_timestamp()now()使用说明
  7. Rearrange an array of positive and negative integers
  8. Boost::context模块fiber的解析器测试程序
  9. mysql批量更新查询结果_数据库批量查询结果作为更新的值
  10. 32 引脚_函数功能:定时器T0的中断服务子程序,使P3.7引脚输出音频方波
  11. 解决linux下fflush(stdin)无效
  12. Github标星35K+超火的Spring Boot实战项目(附项目地址+教程文档)
  13. 爬虫第四章 单线程+多任务异步协程
  14. 震惊!Redis 的字符串居然是这样实现的…
  15. surfacepro3运行C语言,【微软 Surface PRO3使用总结】C面|D面|噪音|材质_摘要频道_什么值得买...
  16. 对于Linux内核tty设备的一点理解 【转】
  17. Origin画图标签常见语法
  18. 关于道路标志牌的标记和数字标记
  19. mysql启动报没有发现index,log_bin.index not found 启动报错解决
  20. 任意多边形的面积计算

热门文章

  1. 基于Java+SpringBoot+vue前后端分离足球青训俱乐部管理后台系统设计实现
  2. 《惢客创业日记》2018.11.27(周二)保健品和大力丸(下)
  3. [java]让人尴尬的一段代码
  4. linux buff cache区别,buffer和cache的区别
  5. tightvnc实现windows远程连接控制linux主机
  6. c++运算符运算顺序
  7. 原来满清是宋徽宗的后代!
  8. 主机mysql在哪里找_虚拟主机数据库在哪里
  9. 【C】【笔记】《C语言深度剖析》第五章 内存管理
  10. nifi下载windows版本安装启动成功