首页 首页 资讯 查看内容

微软面试题:1000个瓶子,999瓶是水,1瓶是毒药,怎么找出那瓶毒药?

2022-09-11| 发布者: 阜南信息社| 查看: 135| 评论: 1|文章来源: 互联网

摘要: 微软面试题,有1000个瓶子,其中999瓶是水,1瓶是毒药,外观无法区别。现有10只小白鼠和无限多干净试管,怎么......
CXM http://www.cxm-yyds.com

微软面试题,有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瓶子是多大容量,一只小白鼠有多大,能喝多少水,有没有时间要求,小白鼠死几只?等等⋯!这样才是一个合格的程序员。

网友:分成11份,10份90瓶,1份100瓶,前10份给10只老鼠喝,死了就在90瓶里,没死就在100瓶里,然后继续按这个方法,最多3次,优点在于运气好时一只老鼠都不用死。



鲜花

握手

雷人

路过

鸡蛋
| 收藏

最新评论(1)

Powered by 阜南信息社 X3.2  © 2015-2020 阜南信息社版权所有