两鬓已不能斑白的专栏

临渊羡鱼,不如退而结网,工作转入爬虫坑

面试题:8个试剂,其中一个有毒,最少多少只小白鼠能检测出有毒试剂

面试题: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值小鼠。

这里写图片描述

阅读更多
版权声明:拥抱开源,欢迎转载,转载请保留原文链接~ https://blog.csdn.net/u010429424/article/details/77856133
个人分类: 笔试面试
所属专栏: 笔试题小记
上一篇面试题13.在O(1)时间删除链表节点
下一篇面试题:完全二叉树699个节点,则叶子节点有多少个?
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭