一个有趣的问题,用10只蚂蚁从1000瓶水中找出唯一有毒的一瓶

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个有趣的问题,用10只蚂蚁从1000瓶水中找出唯一有毒的一瓶相关的知识,希望对你有一定的参考价值。

其实原文说的是10只小鼠,考虑到一些生物伦理问题,小石哥把它换成了10只蚂蚁,可是蚂蚁也是生命。其实不用这么当真的,又不是真的要做这个事。

再具体说一下问题,有1000个装有水的瓶子,其中有一瓶水是有毒的,蚂蚁喝了有毒的水后会在一周的死亡,现在给你10只蚂蚁,和一周的时间,你要从这1000瓶水中找出有毒的那瓶。

作者给出了这样的答案:

把问题简化一下,3只蚂蚁,7个瓶子。

000=0,001=1,010=2,011=3,100=4,101=5,110=6,111=7

把1,3,5,7号瓶子的水给1号蚂蚁喝,2,3,6,7号瓶子的水给2号蚂蚁喝,4,5,6,7号瓶子的水给3号蚂蚁喝。3只蚂蚁对应上面二进制的每一位,如果一周后蚂蚁死了,就把它所在的位置标记为1。

假设1号2号蚂蚁死了3号活着,就是110,对应的是6号瓶子;

依次类推……,就可以找出那个毒瓶子了。由此可见,最少是死一只蚂蚁,最多3只全死。

再回到题目,因为210=1024,所以用10只蚂蚁可以从1023个瓶子里找出有毒的那个,1000个瓶子自然不在话下。

以上是关于一个有趣的问题,用10只蚂蚁从1000瓶水中找出唯一有毒的一瓶的主要内容,如果未能解决你的问题,请参考以下文章

智力题(程序员面试6经典)

go·有趣唯匠心,可筑生活之精致!

用最少老鼠数找出7瓶药中的1瓶毒药

智力题目集锦

1-逻辑题一

老鼠和毒药(面试题)