Tuesday, September 22, 2009

看到一個比較雷的題

发信人: SilentSpirit (Spirit ), 信区: Algorithm
标  题: 问一个老题
发信站: 水木社区 (Mon Sep 14 20:33:44 2009), 站内

实验室里有1000个一模一样的瓶子,但是其中的一瓶有毒。可以用实验室的小白鼠来
测试哪一瓶是毒药。如果小白鼠喝掉毒药的话,会在一个星期的时候死去,其他瓶子里
的药水没有任何副作用。请问最少用多少只小白鼠可以在一个星期以内查出哪瓶是毒药。
a. 9   b. 10  c. 32 d. 999 e. 以上都不对

--------------------------------------------

方法:

2^10=1024>1000

拿10只小白鼠編號成0-9。

把1000個瓶子編號成0-999,然後把對應二進制編碼的瓶子給對應位的小白鼠喝。

比如345 (base 10) = 101011001 (base 2)

即是

9876543210

0101011001

即第345瓶給第8,6,4,3,0只小白鼠喝一口。

PS:這個方法要求編號為0的小白鼠要嘗500瓶,中毒死幾率最大,而且估計沒毒死前已經撐死了。。。哈哈哈

1 comment:

Meng said...

刚开始确实考虑到使用对数,就像天平问题一样。不过看到题目比较雷人,所以觉得答案是1(最少用多少只)。