zoukankan      html  css  js  c++  java
  • 小鼠试毒问题(二进制)

    1000桶酒,其中1桶有毒。而一旦吃了,毒性会在1周后发作。问最少需要多少只老鼠可在一周内找出毒酒?

    如题。

    分析思路:
    要用尽可能少的老鼠完成相对大的任务量,要想到把问题进行对数分解。
    从而不难想到 210=1024 2^{10}=10242
    10
    =1024 这个数量关系。

    解法一:
    二进制编码。

    首先对1000桶酒按照1~1000进行二进制编码,因为 210 2^{10}2
    10
    = 1024 > 1000,因此需要10位二进制。
    故只需要取10只老鼠,每只老鼠只喝其对应位数为1的编号的酒。

    然后给10只老鼠按以下编码:
    第一只 0000000001
    第二只 0000000010
    第三只 0000000100

    第十只 1000000000

    结果举例:编号为1000100011的酒是毒酒。
    则对应喝酒的只有第一只,第二只,第六只,第十只死亡。

    故最后可从哪几只老鼠死亡来判断毒酒的编号是多少。
    ————————————————
    版权声明:本文为CSDN博主「ChanYipFan」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_43530726/article/details/87920137

  • 相关阅读:
    android: LayoutInflater使用
    android:ListView bbs Demo
    android:制作 Nine-Patch 图片
    android:单位和尺寸
    android:提升 ListView 的运行效率
    android:定制 ListView 的界面
    android:ListView 的简单用法
    android:创建自定义控件
    android:四种基本布局
    android:ProgressDialog控件
  • 原文地址:https://www.cnblogs.com/sunlong88/p/11770058.html
Copyright © 2011-2022 走看看