10只老鼠检测1000桶酒中的1桶毒酒!二进制解超级智力难题
时间:12-11来源:作者:点击数:
网络上有一道超级智力难题,为什么说“超级”呢?真的是令人“一脸懵逼的进来,还一脸懵逼的出去!”。即使给了你答案,仍会使你不明所以。这道题不仅考你智商,同时还考你知识,如果在毫无提示的前提下能给出正确答案并解释清楚整个过程的话,说是天才绝无夸张。先看题:
有1000桶酒,其中一桶有毒,一旦喝了(微乎其微一点点)必死(几天后)无疑。现在要用老鼠做实验来快速找出这桶毒酒,请问最少要用多少只老鼠?
答案是五花八门的,或几十或几百或一千各种奇葩答案层出不穷。那么现在告诉你:只需10只老鼠就能轻松搞定!而且我认为是唯一标准答案!你别不服气,这绝不是脑筋急转弯,也不是买鸡卖鸡的脑残题!我来解题,请你来找茬:
大家知道,2的10次方等于1024,是大于做实验的1000桶酒的,我们就利用这2的1至10次方巧妙布局,就可以检测1024桶酒,虽然有些麻烦,但这是唯一的途径:
将10只老鼠从1到10分别编号,将酒从1到1000分别编号。然后编组哪些老鼠喝哪些酒,为方便看清规律我直接编到1023。
一号鼠(下面数字为酒的编号,下同)
1-3-5-7-9-11-13-15-17-19-21-23-25-27-29-31……999-1001-1003-1005……1023
二号鼠
2-3-6-7-10-11-14-15-18-19-22-23-26-27—30-31-34-35……1018-1019-1022-1023
三号鼠
4-5-6-7-12-13-14-15-20-21-22-23-28-29—30-31……1015……1020-1021-1022-1023
四号鼠
8-9-10-11-12-13-14-15-24-25-26-27-28—.29-30-31……1020-1021-1022-1023
五号鼠
16——31、48——63、80——95、112——127……1020-1021-1022-1023
六号鼠
32——63、96——127、160——191、224——255、288——319……1022-1023
七号鼠
64——127、192——255、318——383、、448——511……1021-1022-1023
八号鼠
128——255、384——511、640——767、896——1023
九号鼠
256——511、768——1023
十号鼠
512——1023
相信聪明的你已看出了编排的规律:每组首位数都是2的次方,并且首位数是几就连续编几,再间隔几,陆续再编直到1023,如五号鼠首位16,就从16开始连续编16个数,空16个数,再编再空,直到1023刚好16个数。再如一号鼠:从1开始,编一个数空一个数直到1023,1至10号完全一样。每只老鼠所对应的酒数量均为512桶。
开始喂酒,每只老鼠要喝它所对应的512桶酒中的一点点(不要考虑它会醉死喔!)。喝了毒酒的老鼠死了,怎样知道哪桶酒有毒呢(它可喝过五百多个桶啊!)?
实验结果:将所有死去老鼠所喝的512桶酒的第一个编号数字相加,得到的数字就是毒酒的编号。如10只老鼠都死了:1+2+4+8+……+512=1023,即1023号酒为毒酒,看看所有编组中都有1023吗?如1、2、4、5号死了,则1+2+8+16=27,即27号酒为毒酒,看其它编组中还有27吗?你可以随机再选几个试试!
不是说二进制解题吗?怎么只字未提啊?那好,请你随机挑选任意一个编组中的任何一个数字,把它转换成二进制,这个二进制数列中的1表示这个数在这一编组里有,0表示没有。如1023的二进制数列1111111111表示所有10个编组都有1023;33的二进制数列100001表示第一编组和第六编组有33;15的二进制数列1111表示一、二、三、四编组里有15……你再选几个试试,不对喷我好了。这就是二进制的奇妙之处!
以上是我对这道题的粗浅认识及解答方法,旨在抛砖引玉,有更好方案请在评论区探讨,谢谢!
前面说了能测1024桶酒,但编号也只编到1023、二进制也对应不上啊!不过确实可以,这个问题交给聪明的你了!