
文章图片

微软面试题 , 有1000个瓶子 , 其中999瓶是水 , 1瓶是毒药 , 外观无法区别 。 现有10只小白鼠和无限多干净试管 , 怎么找出那瓶毒药?
用混检的方法即可实现:
1、1000个分两组(500/组):会死一只老鼠
2、剩余分两组(250/组):会死一只老鼠
3、125/组:死一只
4、62.5/组:死一只
5、31.25/组 死一只
6、15.6/组 死一只
7、7.8/组 死一只
8、3.9/组 死一只
9、1.9/组 死一只
10、第十次刚好验证出有毒的瓶子
但我觉得这种类似穷举的算法不够优雅 , 各位大神还有何高见?
网友:为何要十次 , 三到四次即可 。 把1000只分十份 , 每份100只取样混合给十只老鼠吃 , 死一只老鼠确定100瓶 , 再分十份给九只老鼠吃 , 再死一只确定十瓶 , 再分十组给八只老鼠吃 , 确定一瓶或二瓶 。 死到四只老鼠就行了 。
网友:这题考一个 , 算法 , 逻辑!可以有很多种解法 , 要问清楚 , 1000瓶子是多大容量 , 一只小白鼠有多大 , 能喝多少水 , 有没有时间要求 , 小白鼠死几只?等等?!这样才是一个合格的程序员 。
【微软|微软面试题:1000个瓶子,999瓶是水,1瓶是毒药,怎么找出那瓶毒药?】网友:分成11份 , 10份90瓶 , 1份100瓶 , 前10份给10只老鼠喝 , 死了就在90瓶里 , 没死就在100瓶里 , 然后继续按这个方法 , 最多3次 , 优点在于运气好时一只老鼠都不用死 。
- 浮甘瓜于清泉,沉朱李于寒水”描述的是什么场面 蚂蚁庄园今日答案6月28日
- 零售业|确定涨价!iPhone14四款新机全面涨价!国行也在其中!
- |三星Galaxy Z Fold 4 封面显示曝光 外部显示器23: 9 纵横比
- 联发科天玑9000+之王浮出水面,极有可能又是vivo
- 一加科技|荣耀好戏不断,16+256GB新机露面,还有5000mAh大电池陪同
- PHP|如何降低用户关注的非必要页面的权重传递?
- rest|golang笔记 | 面试题整理
- |强劲送风,满足你对美感的挑剔—洛斐有范S桌面风扇
- iOS|iPhone6s升级iOS15.6b3各方面优化太满意了,老机型终于能养老了
- 6月23日消息|全面自主可控!首个全链路国产操作系统OpenCloudOS
