有趣的二进制----老鼠和毒药问题

二进制,是计算技术中广泛采用的一种数制,由德国数理哲学大师莱布尼茨于1679年发明。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。例如十进制的数字4可以用二进制100表示。二进制在计算机系统里面很常用,非常简单易用。

有趣的二进制----老鼠和毒药问题

我们来看一个有趣的例子:7瓶无色无味的药水,其中一瓶是毒药,有三只小白鼠用来做实验,喝了无毒的药水第二天没事儿,喝了有毒的药水,第二天就会死亡,如何在一天内找出这瓶有毒的药水?

按照常规的方法来解答,在一天内肯定无法找到毒药水。我们可以这样思考,把七瓶毒药按 序号1-7排序,然后转化为二进制,如下图:

有趣的二进制----老鼠和毒药问题

这样问题就简单了,三只老鼠分别喝下自己所在列数字为1的那一瓶药水,例如老鼠A同时喝下序号1,3,5,7的药水,老鼠B同时喝下序号2,3,6,7的药水。然后第二天观察老鼠的存活情况,没死的老鼠标记0,死了的老鼠标记1,然后将三只老鼠(按照老鼠C,老鼠B,老鼠A的顺序)对应的数字组合起来,组合起来的数字就是毒药水的序号。例如老鼠C死亡,老鼠B活着,老鼠A活着,那么对应的数字就是100(十进制就是4),也就是说4号瓶子里面是毒药水。

聪明的读者,大家明白了吗?现在我来考考大家,如果有1000瓶药水,只有一瓶是毒药水,其他假设条件不变,问:至少需要几只小白鼠才能完成实验?欢迎在下方留言交流。

有趣的二进制----老鼠和毒药问题


分享到:


相關文章: