前言
由于最近在忙其他事情而导致一周多没有写博客了,趁今天下午有空,也想起了一个之前看到的有趣的二进制问题,所以这次博文就探讨一下这个有趣的问题。
题目
有1000瓶水,其中999瓶没有毒药,只有1瓶有毒药,只要一喝到毒药就会在一天后死亡,给你10个老鼠和1天的时间,问你怎样在规定的条件内快速找到哪一瓶水含有毒药?
<!-- more -->
解决方案
-
对1000瓶水贴上二进制编号(10位):
1号 -----------0000000001
2号 -----------0000000010
3号 -----------0000000011
……………………………………
999号 --------1111100111
1000号 --------1111101000
-
对10只老鼠进行编号:
分别是A,B,C,D,E,F,G,H,I,J
-
让A~J老鼠分别喝同一列编码是1的水,即:
A老鼠喝编码格式为xxxxxxxxx1的水
B老鼠喝编码格式为xxxxxxxx1x的水
C老鼠喝编码格式为xxxxxxx1xx的水
D老鼠喝编码格式为xxxxxx1xxx的水
E老鼠喝编码格式为xxxxx1xxxx的水
F老鼠喝编码格式为xxxx1xxxxx的水
G老鼠喝编码格式为xxx1xxxxxx的水
H老鼠喝编码格式为xx1xxxxxxx的水
I老鼠喝编码格式为x1xxxxxxxx的水
J老鼠和编码格式为1xxxxxxxxx的水
-
假如A,D,I老鼠死了,那个该水含有毒药的编号就是0100001001,化为10进制为265号。
小结
以上就是一个二进制比较有趣的问题。