从1000瓶水中找出一瓶有毒的水,才看到的题 - 逝去的青春

从1000瓶水中找出一瓶有毒的水,才看到的题

作者:jao 发布于:2013-3-26 13:05 分类:网络教程

问题:有1000瓶水,其中只有一瓶水有毒,小鱼只要尝一点带毒的水,2小时后就会死亡,至少要多少只小鱼才能在2小时就鉴别出哪瓶水有毒?
A.9
B.10
C.12
D.999
===
分界线
===
===
分界线
===
===
分界线
===
===
分界线
===
===
分界线
===
我来解释一下,并给出一个方案,时间不是问题,2小时内肯定可以找出有毒的那瓶。
给1000个瓶分别标上如下标签(10位长度):
0000000001 (第1瓶)
0000000010 (第2瓶)
0000000011 (第3瓶)
......
1111101000 (第1000瓶)
从编号最后1位是1的所有的瓶子里面取出1滴混在一起(比如从第一瓶,第三瓶,。。。里分别取出一滴混在一起)并标上记号为1。以此类推,从编号第一位是1的所有的瓶子里面取出1滴混在一起并标上记号为10。现在得到有10个编号的混合液,鱼排排站,分别标上10,9,。。。1号,并分别给它们灌上对应号码的混合液。24小时过去了,过来验尸吧:
从左到右,死了的鱼贴上标签1,没死的贴上0,最后得到一个序号,把这个序号换成10进制的数字,就是有毒的那瓶水的编号。
检验一下:假如第一瓶有毒,按照0000000001 (第1瓶),说明第1号混合液有毒,因此鱼的生死符为0000000001(编号为1的鱼挂了),0000000001二进制标签转换成十进制=1号瓶有毒;假如第三瓶有毒,0000000011 (第3瓶),第1号和第2号混合液有毒,因此鱼的生死符为00000011(编号为1,2的鼠兄弟挂了),0000000011二进制标签转换成十进制=3号瓶有毒。

标签: 算法

et_highlighter
Copyright © 2012-2013 逝去的青春 蜀ICP备13029051号-1 手机版 安全联盟 Theme by Admin73 sitemap