2019-02-13 思考:1000瓶药水,1瓶有毒,老鼠毒发24h,如何用最少的老鼠在24h内找出毒药?
题目:
现在有1000瓶药水,其中一瓶有毒,一只老鼠喝了在24h后会准时死亡,药水无色无味,如何用最少的老鼠在24h内找出毒药?
分析: 时间限制为24h,说明我们只有一次喂老鼠的机会,需要一波找出来死亡的老鼠,先从小举例:1瓶药水–1只老鼠;2瓶药水–1只老鼠;3瓶药水–2只老鼠;4瓶药水–2只老鼠(方案:1只老鼠喝1,1只老鼠喝2,老鼠会出现死与不死两种情况,2只老鼠一起喝3则简单推断),从中可以看出,老鼠的死与不死能组成几种组合,则最多可辨别几瓶药水。故只需 2 n > 1000 2^n > 1000 2n>1000即可,得到n为10。
加强题目:若将题中一天改为2天,3天……?
思路同理:如改为2天,则每只老鼠可能有3种情况:
1.第一天死
2.第二天死
3.两天都不死
那么只需 3 n > 1000 3^n>1000 3n>1000
得到n=7.
那么具体的解决方案则只需想到如何安排老鼠喝药才能最简单的判断药水的毒性?可以想到,用进制转换即可:
1000瓶药水编号 1~1000,转换为2进制:
0000000001
0000000010
0000000011
0000000100
0000000101
……
则可以看出每一个十进制数字对应一个具有鲜明特征的二进制
我们只需要将10只老鼠分别安排在0号到9号位
是1喝,是0不喝就可以了
比如: 0000000001 ——0号喝
0000000101 ——0号喝2号喝
到最后将死亡老鼠重新组合为2进制数后转化为10进制则为有毒的那瓶了。
妙啊
2019-02-13 思考:1000瓶药水,1瓶有毒,老鼠毒发24h,如何用最少的老鼠在24h内找出毒药?相关推荐
- 2021-08-27 思考:1000瓶药水,1瓶有毒,老鼠毒发24h,如何用最少的老鼠在24h内找出毒药?
题目: 现在有1000瓶药水,其中一瓶有毒,一只老鼠喝了在24h后会准时死亡,药水无色无味,如何用最少的老鼠在24h内找出毒药? 分析: 时间限制为24h,说明我们只有一次喂老鼠的机会,需要一波找出来 ...
- 1000瓶药水,1瓶有毒药,几只小白鼠能够找出毒药
1000瓶药水,1瓶有毒药,服用后一小时毒发,毒药可以无限稀释,那么一小时内用几只小白鼠能够找出毒药? 假如是8瓶药水,3只小白鼠. 000=0 001=1 010=2 011=3 100=4 101 ...
- 16瓶药水一瓶有毒,去小白鼠测试哪一瓶水有毒?
16瓶药水一瓶有毒,去小白鼠测试哪一瓶水有毒? 面试的时候有个面试官问我,有16瓶药水,其中一瓶有毒,一只小白鼠喝过之后,一天之后会死亡,要求在少于15只小白鼠的情况下判断出哪一瓶有毒,药水可以兑在一 ...
- 一千瓶酒有一瓶酒有毒药,问你最少用多少只老鼠可以找出那瓶毒酒? 老鼠毒发的时间在两小时内,要求在两个小时内找出毒酒。
题目: 一千瓶酒有一瓶酒有毒药,问你最少用多少只老鼠可以找出那瓶毒酒? 老鼠毒发的时间在两小时内,要求在两个小时内找出毒酒. public class Demo03 { public static v ...
- 有1000桶酒,其中1桶有毒.而一旦吃了,毒性会在1周后发作.现在我们用小老鼠做实验,要在1周内找出那桶毒酒,问最少需要多少老鼠.
有1000桶酒,其中1桶有毒.而一旦吃了,毒性会在1周后发作.现在我们用小老鼠做实验,要在1周内找出那桶毒酒,问最少需要多少老鼠. 很老的笔试题了. 答案是10只. 把十只老鼠看成二进制的位数,把酒桶 ...
- 【智力题】有 1000 瓶药物,但是其中有一瓶是有毒的,小白鼠吃了一个星期以后就会死掉!请问,在一个星期内找出有毒的 药物,最少需要多少只小白鼠?
答案是10只 本题采用了二进制的思想 小白鼠的生与死可以看作二进制的0和1. 用10只小白鼠,也就是10个二进制位,最多可以表示1024个数. 编号环节 先给药水从001到1000编号,每个药水编号转 ...
- 智力题:1000瓶酒.10只老鼠.有一瓶酒有毒,每只老鼠可以喝无限多的酒,如何测一次就找出哪瓶酒有毒
这是一道面试的智力题目: 每瓶给一个编号.把编号做成二进制. 2的10次方=1024 (最多可以一次性检验1024瓶). 老鼠也排成一排,编号 1-10 把1000瓶都给小老鼠喝掉 (二进制为1的就喝 ...
- 10只小白鼠1000支药水找出毒药问题
偶然间看到了这道题:10只小白鼠,1000支药水有且仅有一支是毒药,毒药发作时间是两个小时,忽略小白鼠喝药水的时间以及其他影响因素,每支药水足够多,问:如何利用这10只小白鼠在两个小时内找到那支毒药? ...
- 毒酒问题---1000桶酒,其中1桶有毒。而一旦吃了,毒性会在1周后发作。问最少需要多少只老鼠可在一周内找出毒酒
如题. 本题考查的是二进制编码问题. 如对1000桶按1~1000编码,需要10位二进制数. 因此只需要取10只老鼠,每只老鼠只喝其对应位数为1的编号的酒. 即10只老鼠按以下编码: 第一只 0000 ...
最新文章
- 淘宝服务端高并发分布式架构演进之路
- java实现一个跳转结构程序,Java程序设计基础(第6版)最新章节_鲜征征著_得间小说...
- python一点基础都没有的怎么办-你们都是怎么学 Python 的?
- mysql 将时间戳直接转换成日期时间,mysql查询某一天的数据。
- [转]开源项目学习方法ABC
- 【剑指offer - C++/Java】13、调整数组顺序使奇数位于偶数前面
- treegrid.bootstrap使用说明
- 第37课 thinkphp5添加商品基本信息及通过前置钩子上传商品主图 模型事件(勾子函数)...
- mf模型 svd++_推荐系统算法(MF、FM、CF、SVD、LFM、SVD++、TItemCF、timeSVD++、模型融合)...
- pc控制iphone的软件_iPhone照片视频传输及HEIC照片转档
- linux 运行程序的方法,linux 长期运行程序的 四种方法
- Codeforces Round #401 (Div. 2) E. Hanoi Factory 栈
- java web初始化实例_Struts2中实现web应用的初始化实例详解
- 【优化算法】蜻蜓算法(DA)【含Matlab源码 1306期】
- Excel 2016 对数据做线性回归分析步骤
- oracle64位 32位plsql,64位oracle 安装32位plsql develop
- Linux下最适合程序员的编程字体
- 云服务器选择、腾讯云轻量应用服务器面板介绍
- 重庆ETC学员“食神大赛”
- vuecli项目打包