微软笔试题-老鼠与毒药
有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 个瓶子中检验出毒药来。
微软笔试题-老鼠与毒药相关推荐
- 数位DP--由一道微软笔试题引起
前天晚上,一位研三的学长突然跑到我们宿舍,问我们一道微软笔试题.给你一个整数n,求出1到n这个区间范围内包含数字0的个数,例如当n=10的时候就只有10包含0,输出1,n=90就输出9.唯一的要求是此 ...
- 微软笔试题 2013暑期实习笔试题目
2019独角兽企业重金招聘Python工程师标准>>> 1: 有1000瓶水,其中1瓶是有毒的,小老鼠如果喝了有毒的水会在一个星期后死掉,问至少需要多少只小老鼠来做实验,才能够在一星 ...
- ios笔试题算法_微软笔试题-Dijkstra算法
Dijkstra算法是典型的算法.Dijkstra算法是很有代表性的算法.Dijkstra一般的表述通常有两种方式,一种用永久和临时标号方式,一种是用OPEN, CLOSE表的方式,这里均采用永久和临 ...
- 微软笔试题,机器人消砖块
我比较傻叉,居然忘了用动态规划做,用了递归,各种边界判断,而且数组稍大一点就栈溢出.递归可以剪支,稍微减少一些递归次数.不管怎么样还是贴上自己的傻叉代码吧 #include<iostream&g ...
- 微软笔试题(看到的写答案啊)
int func(int n, int* r) { printf("n=%d *r=%d\n",n,*r);//加了个打印的东西 return n && (*r + ...
- 亚洲研究院微软笔试题
http://hi.baidu.com/houqingxin/blog/item/0a7b3b1e2068f9f71ad57655.html
- 一道有趣的微软笔试题
老师d 的物理测验答案在教室里丢失了,今天那个教室上了5 堂课,老师d 上了3 堂,有可 能是a.b.c 三个同学盗窃 已知:1.a 上了两堂课 2.b 上了三堂课 3.c 上了四堂课 4.a.b.c ...
- 【转】IT名企面试:腾讯笔试题(2)
摘要:想要进入腾讯公司,面试笔试题是一定要有所准备的.那么这里我们总结了一些腾讯笔试题,例如:const的含义及实现机制等问题. 腾讯是国内数一数二的IT企业了.那么每年想要进入腾讯公司的应聘者也是络 ...
- 90 个名企笔试题和算法题
名企笔试 名企笔试:美团2016招聘笔试(股票交易日) 名企笔试:搜狐2016招聘笔试题(扎金花) 名企笔试:凤凰网2015招聘(二分查找) 名企笔试:4399游戏校招笔试题(快速排序) 名企笔试:蘑 ...
- 搬:90 个名企笔试题和算法题
名企笔试 名企笔试:美团2016招聘笔试(股票交易日) 名企笔试:搜狐2016招聘笔试题(扎金花) 名企笔试:凤凰网2015招聘(二分查找) 名企笔试:4399游戏校招笔试题(快速排序) 名企笔试:蘑 ...
最新文章
- Struts2--标签tag
- Redis基本数据类型1--String
- 解题:USACO15JAN Grass Cownoisseur
- idea下org.apache.commons.dbcp.BasicDataSourc找不到
- app inventor2 打地鼠_春节越南旅行攻略必备手机APP推荐!旅游必备实用简单越南语...
- java获取年的第一天和最后一天_java中如何获取当前年份的第一天和最后一天
- Java-时间复杂度和空间复杂度
- css3 选择器_IT兄弟连 HTML5教程 CSS3揭秘 CSS3概述
- Hi,我是易建科技eKing Cloud!
- t检验的p值对照表_第十讲 R-两独立样本t检验
- 【python】OpenCV—RGB, Rectangle, Circle, SS(1)
- [论文笔记]Arbitrary-Oriented Scene Text Detection via Rotation Proposals
- 【22.05.14】native thread exiting without having called DetachCurrentThread
- 一般哪些原因会造成硬盘损坏呢
- Jmeter点击启动无响应问题
- 张量学习(1):张量的基本概念
- 操作系统中的概念详解
- 新型电源系统软件测试,新型电机性能测试系统-电力测功机
- linux——SMB文件共享及应用实例
- Windows下载Hadoop,本地执行MapReduce
热门文章
- ecno是什么的缩写_美国的英文缩写是什么简写
- MISRA C_2012规则翻译、解读、示例
- excel柱状图粗细怎么调_【EXCEL图表当中的柱状图怎么加粗,太细了。】excle柱状图怎么调整...
- 全国基础地理数据库数据预处理
- 双三次插值及Matlab实现
- HttpSession session用法详解
- 将excel或是csv文件中的矩阵相乘,输出点乘后的excel文件
- matlab矩阵乘法不同行,矩阵乘法在numpy/matlab/数学上的不同
- md5算法不可逆,为啥网上很多网站声称可以解密md5
- ①万字《详解canvas api画图》小白前端入门教程(建议收藏)