• 小白鼠问题


    EMC题目

    实验室里有1000个一模一样的瓶子,但是其中的一瓶有毒。可以用实验室的小白鼠来测试哪一瓶是毒药。如果小白鼠喝掉毒药的话,会在一个星期的时候死去,其他瓶子里的药水没有任何副作用。请问最少用多少只小白鼠可以在一个星期以内查出哪瓶是毒药:
    a. 9
    b. 10
    c. 32
    d. 999
    e. 以上都不对

    小侃

    发现人总有思维的死角,想着这样怎么可能,可是偏偏就是可以,而且可以用你一直在看的那一套理论:信息论。也许以前对我来说信息论只是香农熵和各种理论推导,还有这个模型那个模型,从来没有想过竟是那么有用的一个工具。。。闲篇扯多了。

    看的sxnuwhui的博客:http://hi.baidu.com/sxnuwhui/item/0bd9e61b8511cc4d6926bba8。这边请允许我用自己的语言梳理一下,面百度的惨痛经历告诉我,对以前自己做的项目的方法木有好好梳理,最后竟然会变成不是自己做的。我能喊声冤顺便说这个项目最初的那个方案是按照Columbia Newsblaster的文章上描述的方法做的么。。。只是用什么聚类方法我给弄混了。那个方法确实有那个问题,又开始扯闲篇,刚接受了两个大打击脑袋有些混乱,现在开始真正的正题。

     解题思路

    首先对这些小白鼠进行编码,如果只用一只小白鼠来测试一瓶药水,用1表示有毒,0表示没有毒,那么一直小白鼠身上的信息量用香农熵来表示就是:H = 1/1000*log(1/1000) = 0.3%,小了点,一只小白鼠活生生的生命实在太可惜了。是否可以将药水的号码进行编码,要表示1000到0的所有数,可以使用1000个0或者1也可以使用四位十进制,10位二进制。而小白鼠是生是死就相当于一个二进制数。譬如对第0位小白鼠,就给它喂食第1瓶,第3瓶,第5瓶……以此类推将所有在该位为1的瓶子里的水喂给代表该位的小白鼠吃,这样子如果小白鼠是00 0000 0001,则代表第一瓶药水是有毒的。

  • 相关阅读:
    kubadm初始化找不到镜像
    ssh登录等待时间长问题
    6.vue之v-html
    5.vue之v-text
    4.vue之data对象
    3.vue之el:挂载点
    2.vue基础test
    1.vue之软件VSCode(自动刷新)
    java计算金额保留两位小数精确到分(四舍六入五成双)
    win7 64位 旗舰版装系统记录及window简记
  • 原文地址:https://www.cnblogs.com/xiaoka/p/2747160.html
Copyright © 2020-2023  润新知