题目:现有1000瓶水其中有1瓶是有毒的,现在有n只小白鼠,小白鼠如果喝了毒水,会在21小时死亡,现在有24小时的时间,请问如何使用最少数目的小白鼠,在限定的时间内找到哪瓶水有毒?

解题思路:

1000<2^10=1024,我们对1000瓶水进行编号1~1000,选择10只小白鼠标号为a0,a1,a2,...,a9;从而有将每瓶水的标号转化成二进制数后,对应的二进制数的每一位都与一只小白鼠相对应。

顺序扫描每瓶水,对于每瓶水根据其标号将其转换成二进制数,根据白鼠和二进制每一位的对应情况,对于相应位为1的白鼠,我们让其喝下当前检验的水,否则不做操作。例如:

对于10号瓶的水:

a9

a8

a7

a6

a5

a4

a3

a2

a1

a0

0

0

0

0

0

0

1

0

1

0

图中为标号为10(十进制)=0000001010(二进制),则我们给a1而a3喝这瓶水。

这样对于所有的1000瓶水扫描一遍之后,21小时后死去的白鼠,必定喝过有毒的那瓶水,也就意味着有毒的那瓶水的标号转换成二进制后对应所有死去的小白鼠的位置上位1,其他位均为0,故而我们能唯一确定有毒的水的标号。

例如:

在对1000后瓶水都做了以上操作之后,a4、a3和a1死了,则有有毒水的标号转换成二进制数后为0000011010=16+8+2=26即第26瓶水有毒。

1000瓶毒水的问题相关推荐

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

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

  2. 小白鼠喝毒水的问题。

    有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出哪瓶水有毒? 这是一道很经典的面试题目,先说解题方法吧,2^n >= 1000 ...

  3. 小白鼠喝毒水问题(一分为二的思想)

    问题描述: 有16瓶药水,其中一瓶有毒,一只小白鼠喝过之后,一天之后会死亡,要求一天后,至少多少只小白鼠,可以找出有毒药水. 问题解决: 这个问题很经典,然而网上多是二进制转十进制思想. 我在这里尝试 ...

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

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

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

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

  6. 1000瓶有毒的水,用多少只老鼠可以试出有毒的那瓶

    文章目录 信息论解法 二分法解法 二进制解法 信息论解法 信息论解法得不到过程,只能得到结论 老鼠只有两种结果,死或者不死,当这两种可能相等的时候,可以得到最大的信息量,log2 = 1比特.设法让每 ...

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

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

  8. 【思维与逻辑】有1000瓶药水,但其中有一瓶毒药水,需要多少只小白鼠?

    [思维与逻辑]有1000瓶药水,但其中有一瓶毒药水,需要多少只小白鼠?   [思维与逻辑]有1000瓶药水,但其中有一瓶毒药水,需要多少只小白鼠?   [思维与逻辑]快速分沙堆,辨别出十堆沙子中哪堆沙 ...

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

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

最新文章

  1. get 和 post
  2. Developer Express XtraGrid使用技巧
  3. 汇编中的扫描码、ASCII码(也称字符码)、扩展码、虚拟键码 的区别
  4. java报错找不到对象,使用Spring源码报错java:找不到类 InstrumentationSavingAgent的问题...
  5. lombok的使用三部曲及使用中遇到的问题(持续更新)
  6. java super.getclass_Java Class 类 getSuperClass()方法及示例
  7. 优秀!结构最清晰的Yolov3 head和loss实现完全解析
  8. oracle standby审计,监控oracle standby
  9. DB2 Vs MySQL系列 | 体系架构对比
  10. 复工后,汉堡薯条、奶茶“续命”又开始了
  11. 满屋花网页代码_成为更好的程序猿!2020年给网页开发人员的32条建议
  12. 使用tp5.1 model返回数据 显示variable type error: array
  13. [置顶] Eclipse显示中文 在线安装教程
  14. 0.96寸OLED 屏幕SSD1306驱动四脚原理图PDF
  15. jdk 7 官方下载
  16. EPLAN教程——如何手动放置报表(以端子排为例)
  17. 蒟蒻的第一篇博客(洛谷P1113)
  18. 3蛋白wb_有这3个工具!蛋白实验不愁!
  19. HTML中的5种空格表示
  20. 第十二期基金定投-周末更新数据

热门文章

  1. 《爆款文案》写文案只需要四个步骤
  2. Python 中隐藏的彩蛋们
  3. ios图片放大之后如何不模糊_如何放大图片而不模糊
  4. OneNav一为主题魔改教程(四):自定义网址内容页的Tag标签到任意位置--洞五洞洞幺
  5. 脑机接口的深度学习算法
  6. TypeScript 开发环境的搭建与数据类型
  7. 详解CorelDRAW X7的多种视图显示模式
  8. pdfwin10闪退_windows10打开pdf文件3秒后秒退
  9. C语言课设物资管理系统,C语言课设之物资管理系统.doc
  10. python 下的 word2vec 学习笔记