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

解答:把瓶子从 0 到 999 依次编号,然后全部转换为 10 位二进制数。让第一只老鼠喝掉所有二进制数右起第一位是 1 的瓶子,让第二只老鼠喝掉所有二进制数右起第二位是 1 的瓶子,等等。一星期后,如果第一只老鼠死了,就知道毒药瓶子的二进制编号中,右起第一位是 1 ;如果第二只老鼠没死,就知道毒药瓶子的二进制编号中,右起第二位是 0 ⋯⋯每只老鼠的死活都能确定出 10 位二进制数的其中一位,由此便可知道毒药瓶子的编号了。

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

解答:7 只老鼠就足够了。事实上,7 只老鼠足以从 3^7= 2187 个瓶子中找出毒药来。首先,把所有瓶子从 0 到 2186 编号,然后全部转换为 7 位三进制数。现在,让第一只老鼠喝掉所有三进制数右起第一位是 2 的瓶子,让第二只老鼠喝掉所有三进制数右起第二位是 2 的瓶子,等等。一星期之后,如果第一只老鼠死了,就知道毒药瓶子的三进制编号中,右起第一位是 2 ;如果第二只老鼠没死,就知道毒药瓶子的三进制编号中,右起第二位不是 2,只可能是 0 或者 1 ⋯⋯也就是说,每只死掉的老鼠都用自己的生命确定出了,三进制编号中自己负责的那一位是 2 ;但每只活着的老鼠都只能确定,它所负责的那一位不是 2 。于是,问题就归约到了只剩一个星期时的情况。在第二轮实验里,让每只活着的老鼠继续自己未完成的任务,喝掉它负责的那一位是 1 的所有瓶子。再过一星期,毒药瓶子的三进制编号便能全部揭晓了。

类似地,我们可以证明, n 只小白鼠 t 周的时间可以从 (t+1)n 个瓶子中检验出毒药来。

微软笔试题-老鼠与毒药相关推荐

  1. 数位DP--由一道微软笔试题引起

    前天晚上,一位研三的学长突然跑到我们宿舍,问我们一道微软笔试题.给你一个整数n,求出1到n这个区间范围内包含数字0的个数,例如当n=10的时候就只有10包含0,输出1,n=90就输出9.唯一的要求是此 ...

  2. 微软笔试题 2013暑期实习笔试题目

    2019独角兽企业重金招聘Python工程师标准>>> 1: 有1000瓶水,其中1瓶是有毒的,小老鼠如果喝了有毒的水会在一个星期后死掉,问至少需要多少只小老鼠来做实验,才能够在一星 ...

  3. ios笔试题算法_微软笔试题-Dijkstra算法

    Dijkstra算法是典型的算法.Dijkstra算法是很有代表性的算法.Dijkstra一般的表述通常有两种方式,一种用永久和临时标号方式,一种是用OPEN, CLOSE表的方式,这里均采用永久和临 ...

  4. 微软笔试题,机器人消砖块

    我比较傻叉,居然忘了用动态规划做,用了递归,各种边界判断,而且数组稍大一点就栈溢出.递归可以剪支,稍微减少一些递归次数.不管怎么样还是贴上自己的傻叉代码吧 #include<iostream&g ...

  5. 微软笔试题(看到的写答案啊)

    int func(int n, int* r) { printf("n=%d *r=%d\n",n,*r);//加了个打印的东西 return n && (*r + ...

  6. 亚洲研究院微软笔试题

    http://hi.baidu.com/houqingxin/blog/item/0a7b3b1e2068f9f71ad57655.html

  7. 一道有趣的微软笔试题

    老师d 的物理测验答案在教室里丢失了,今天那个教室上了5 堂课,老师d 上了3 堂,有可 能是a.b.c 三个同学盗窃 已知:1.a 上了两堂课 2.b 上了三堂课 3.c 上了四堂课 4.a.b.c ...

  8. 【转】IT名企面试:腾讯笔试题(2)

    摘要:想要进入腾讯公司,面试笔试题是一定要有所准备的.那么这里我们总结了一些腾讯笔试题,例如:const的含义及实现机制等问题. 腾讯是国内数一数二的IT企业了.那么每年想要进入腾讯公司的应聘者也是络 ...

  9. 90 个名企笔试题和算法题

    名企笔试 名企笔试:美团2016招聘笔试(股票交易日) 名企笔试:搜狐2016招聘笔试题(扎金花) 名企笔试:凤凰网2015招聘(二分查找) 名企笔试:4399游戏校招笔试题(快速排序) 名企笔试:蘑 ...

  10. 搬:90 个名企笔试题和算法题

    名企笔试 名企笔试:美团2016招聘笔试(股票交易日) 名企笔试:搜狐2016招聘笔试题(扎金花) 名企笔试:凤凰网2015招聘(二分查找) 名企笔试:4399游戏校招笔试题(快速排序) 名企笔试:蘑 ...

最新文章

  1. Struts2--标签tag
  2. Redis基本数据类型1--String
  3. 解题:USACO15JAN Grass Cownoisseur
  4. idea下org.apache.commons.dbcp.BasicDataSourc找不到
  5. app inventor2 打地鼠_春节越南旅行攻略必备手机APP推荐!旅游必备实用简单越南语...
  6. java获取年的第一天和最后一天_java中如何获取当前年份的第一天和最后一天
  7. Java-时间复杂度和空间复杂度
  8. css3 选择器_IT兄弟连 HTML5教程 CSS3揭秘 CSS3概述
  9. Hi,我是易建科技eKing Cloud!
  10. t检验的p值对照表_第十讲 R-两独立样本t检验
  11. 【python】OpenCV—RGB, Rectangle, Circle, SS(1)
  12. [论文笔记]Arbitrary-Oriented Scene Text Detection via Rotation Proposals
  13. 【22.05.14】native thread exiting without having called DetachCurrentThread
  14. 一般哪些原因会造成硬盘损坏呢
  15. Jmeter点击启动无响应问题
  16. 张量学习(1):张量的基本概念
  17. 操作系统中的概念详解
  18. 新型电源系统软件测试,新型电机性能测试系统-电力测功机
  19. linux——SMB文件共享及应用实例
  20. Windows下载Hadoop,本地执行MapReduce

热门文章

  1. ecno是什么的缩写_美国的英文缩写是什么简写
  2. MISRA C_2012规则翻译、解读、示例
  3. excel柱状图粗细怎么调_【EXCEL图表当中的柱状图怎么加粗,太细了。】excle柱状图怎么调整...
  4. 全国基础地理数据库数据预处理
  5. 双三次插值及Matlab实现
  6. HttpSession session用法详解
  7. 将excel或是csv文件中的矩阵相乘,输出点乘后的excel文件
  8. matlab矩阵乘法不同行,矩阵乘法在numpy/matlab/数学上的不同
  9. md5算法不可逆,为啥网上很多网站声称可以解密md5
  10. ①万字《详解canvas api画图》小白前端入门教程(建议收藏)