发信人: 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:
刚开始确实考虑到使用对数,就像天平问题一样。不过看到题目比较雷人,所以觉得答案是1(最少用多少只)。
Post a Comment