题目
有1000瓶水,其中有1瓶有毒,小白鼠只要尝一点带毒的水24小时内就会死亡,问:至少要多少只小白鼠才能在24小时内鉴别出哪瓶水有毒A. 1只B. 10只C. 100只D. 500只E. 999只F. 1000只
有1000瓶水,其中有1瓶有毒,小白鼠只要尝一点带毒的水24小时内就会死亡,问:至少要多少只小白鼠才能在24小时内鉴别出哪瓶水有毒
A. 1只
B. 10只
C. 100只
D. 500只
E. 999只
F. 1000只
题目解答
答案
B. 10只
解析
考查要点:本题主要考查二进制编码思想在实际问题中的应用,以及如何通过最少数量的“测试”(小白鼠的生死状态)来区分大量可能性。
解题核心思路:
将每瓶水的编号转换为二进制数,每一只小白鼠对应二进制数中的一位。通过小白鼠的存活或死亡状态(0或1)组合成二进制数,即可唯一确定有毒水的编号。
关键点:
- 二进制位数决定可区分的最大数量。若使用$n$只小白鼠,最多可区分$2^n$种情况。
- 需满足$2^n \geq 1000$,解得$n \geq 10$(因$2^{10}=1024$)。
步骤1:二进制编码
将1000瓶水依次编号为$0$到$999$,并用10位二进制数表示每个编号(例如:编号$5$对应二进制$0000000101$)。
步骤2:分配 tasting 任务
- 每只小白鼠对应二进制数的一位(从右到左依次为第1位到第10位)。
- 若某瓶水的第$k$位为1,则第$k$只小白鼠需尝该瓶水。
步骤3:观察结果
24小时后,根据小白鼠的死亡情况得到一个10位二进制数(死亡为1,存活为0)。
- 该二进制数对应十进制数即为有毒水的编号。
- 例如:若第3、5、8只小白鼠死亡,则二进制数为$100101000$,对应十进制$296$,即第296瓶有毒。