今天分享一道很有意思的问题。
题目:
有1000只一模一样的瓶子,编号1-1000。其中999瓶是水,一瓶是看起来像水的毒药。只要老鼠喝下一小口毒药,一天后则死亡。现在,你有7只老鼠和一天的时间,如何检验出哪个号码瓶子里是毒药?
答案:
根据2^10=1024,所以10个老鼠可以确定1000个瓶子具体哪个瓶子有毒。
先将数据规模变小,有8只一模一样的瓶子,其中有一只瓶子是毒药。现在最少需要几只老鼠可以检验出第几瓶才是毒药?
具体实现跟3个老鼠确定8个瓶子原理一样。
0 0 0 = 0
0 0 1 = 1
0 1 0 = 2
0 1 1 = 3
1 0 0 = 4
1 0 1 = 5
1 1 0 = 6
1 1 1 = 7
分析:
-
我们只用3只老鼠,老鼠A、B、C。
-
上图表中列代表的是瓶子的数量,行代表老鼠。