文章图片
微软面试题 , 有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次 , 优点在于运气好时一只老鼠都不用死 。
- 微软|美的“有序收缩”背后,整个家电行业都在过冬
- 卡里有余额的,快去用掉!5年前它来到杭州风光无限,如今成了“言难尽”,即将全面退出杭州
- 酷睿处理器|终极游戏U该选谁?锐龙7 5800X3D从架构到性能全面制霸
- 曲面屏|从3199降到2499,曲面屏+12G+256G,优质旗舰开始清仓
- 微软|新发布的AirPods3华强北四代耳机如何选购,洛达1562E怎么样呢?
- 今年年初|微软“大义灭亲”功能拦截windowssdk中无害引导
- 苹果|初烧爱好者体验艾特铭客X30音箱:小桌面也能很“Hifi”
- excel|618大促全面开启,连商家都越来越卷了
- 网络安全|以AI行为分析技术切入 全面管控数字时代的API安全风险
- 使用微信的用户注意!错误触碰5个“雷区”,将面临被封号的风险