小白鼠问题

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,则代表第一瓶药水是有毒的。

 

转载于:https://www.cnblogs.com/xiaoka/archive/2012/10/30/2747160.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值