• 1000瓶药水,其中至多有1瓶剧毒


    1000瓶药水,其中至多有1瓶剧毒 

    现在给你10只小狗在24小时内通过小狗试药的方式找出哪瓶药有毒或者全部无毒 

    (小狗服完药20小时后才能判断是否中毒) 

    10只小狗每只都有死和不死两种情况,所以死亡情况就有2的10次方=1024种
    1024大于1000,也就是说判断出毒药是可以实现的
    用2进制表示1000瓶药,用2进制的位表示小狗,就能建立起这个问题的数学模型

    1000瓶毒药编号为1-1000
    小狗编号10-1
    第1瓶给第1只小狗吃。
    第2瓶给第2只小狗吃。
    第3瓶给第1 2只小狗吃。
    第4瓶给第4只小狗吃。
    第5瓶给第1 4只小狗吃。
    第6瓶给第2 4只小狗吃。
    第7瓶给第1 2 4只小狗吃。
    ...
    以此类推
    ...
    第1000瓶给第10 9 8 7 6 4只小狗吃。
    根据小狗死的情况就知道吃药的情况。

    在2进制中1000瓶药表示为
    1.10.11.100.101.110.111.1000.1001.1010.1011......
    ...1111101000
    看哪些狗死了,比如说第10 7 4 3 2 1只小狗死了
    我们就可以得出毒药是第1001001111瓶。
    换算回十进制就是1+2+4+8+64+512=591
    也就是说第591瓶是毒药。

    逆向思考:假设第X瓶水有毒,可以得出X的二进制,X的二进制与兔子的生死排列一致

  • 相关阅读:
    浏览器的跨域请求 与 CORS(跨域资源共享)
    HTML 占位符
    C# 中的 base和this
    推荐一个pdf引擎
    整理wifi相关的知识点
    交叉编译(ISC)DHCP:dhcp-4.3.0b1
    (转载)子网掩码,网关的概念
    海思-VB被占用导致vb无法去初始化
    c++创建文件时重命名同名文件
    iw创建虚拟网卡wlan1,ap_sta共存
  • 原文地址:https://www.cnblogs.com/timlong/p/3901795.html
Copyright © 2020-2023  润新知