面试题:8个试剂,其中一个有毒,最少多少只小白鼠能检测出有毒试剂
方法1:
用3只小鼠,能组合成8种状态。
- 第一只喂食【1、3、5、7】四只试剂
- 第二只喂食【2、3、6、7】四只试剂
- 第三只喂食【4、5、6、7】四只试剂
# [3、2、1]
0 0 1 = 1 # 2、3没死,1死了,说明第1支试剂有毒 0 1 0 = 2 # 1、3没死,2死了,说明第2支试剂有毒 0 1 1 = 3 # 3没死,1、2死了,说明第3支试剂有毒 1 0 0 = 4 # 1、2没死,3死了,说明第4支试剂有毒 1 0 1 = 5 # 2没死,1、3死了,说明第5值试剂有毒 1 1 0 = 6 # 1没死,2、3死了,说明第6值试剂有毒 1 1 1 = 7 # 三只都死了,说明第7值试剂有毒 0 0 0 = 0 # 三只都没死,说明第8值试剂有毒
方法2:
二分法,每次把试剂分成两堆,然后用两只小鼠测试,如果一只死掉了,那么就能确定哪一堆有毒。然后继续分。因此,小鼠的数量就是试剂能被二分的次数。8只试剂能被二分3次,所以就需要3值小鼠。——每次存活的小白鼠继续实验喝毒药。