题目:
有1000个一模一样的瓶子,其中有999瓶是普通的水,有1瓶是毒药。任何喝下毒药的生命都会在一星期之后死亡。现在你只有10只鼠鼠和1个星期的时间,如何检验出哪个瓶子有毒药?
这是一道经典的面试题,我们先来看看一位小兄弟的解答:
答:将10只鼠鼠剁成馅儿,分到1000个瓶盖中,每个瓶盖倒入适量相应瓶子的液体,置于户外,并每天补充适量相应的液体,观察一周,看哪个瓶盖中的肉馅没有腐烂或生蛆。
emmm,好像生物题是可以这样回答(bushi),但是好残忍,但是这样就不是一道智力题了。那么我们该如何解决这个问题呢?
首先一共有1000瓶,2的10次方是1024,刚好大于1000,也就是说,1000瓶药品可以使用10位二进制数就可以表示。从第一个开始:
第一瓶 : 00 0000 0001
第二瓶: 00 0000 0010
第三瓶: 00 0000 0011
……
第999瓶: 11 1111 0010
第1000瓶: 11 1111 0011
需要十只老鼠,如果按顺序编号,ABCDEFGHIJ分别代表从低位到高位每一个位。 每只老鼠对应一个二进制位,如果该位上的数字为1,则给老鼠喝瓶里的药。
观察,若死亡的老鼠编号为:ACFGJ,一共死去五只老鼠,则对应的编号为 10 0110 0101,这个时候刚好说明,喝了这瓶药的死,没喝的没死,通过2进制我们可以很清楚的知道,有毒的药品为该编号的药品,转为十进制数为:613号。这才是正解,当然前提是老鼠还没被撑死(bushi)。当然,鼠鼠那么可爱,不要真的去毒他哦!
总结:
通过今天的智力题,我们又对2进制有了更深的了解,原来2进制不仅仅出现在计算机内部,在很多生活场景也会有他的使用。这就是今天的每日一题,家人们如果觉得很奇妙的话,就点赞关注支持我吧!有了您的支持我会一直出这个系列的博客的!