zoukankan      html  css  js  c++  java
  • 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值小鼠。——每次存活的小白鼠继续实验喝毒药。

  • 相关阅读:
    如何在SQL/400中计算两日期间的天数
    委托、事件与Observer设计模式
    C# 杂项
    泛型学习(二)
    委托
    操作符重载 (operator)
    一个解决方案多个项目
    将方法绑定到委托
    事件
    密封方法 密封类(sealed)
  • 原文地址:https://www.cnblogs.com/bonelee/p/9022031.html
Copyright © 2011-2022 走看看