1000瓶水和10只小老鼠

有1000瓶水,其中一瓶有毒,这个毒呢小白鼠喝了后24小时内死亡.问题出来了最少用多少个小白鼠可以在24小时内找出那个瓶水有毒呢.

晚上睡不着不知道灵感突然来了,这个问题的模型就是用多少二进制位可以表示1000内的一个数字.回答这个模型就简单了,1000表示为二进制表示1111101000.最大的1000用10位就中了,那么检验这1000瓶水要10个小白鼠.

那么要怎么样检验呢.经过我在床上转来转去的思考,终于想到了一个方法.1000瓶水太多了,我们用8瓶水说明情况(要用3个小白鼠做实验哦).好像下面的图叫做平衡二叉树来的吧.名词忘记了,能用就中.



所有小白鼠只喝右分支的水(要是左的话水编号要从右到左增加). 也就是
鼠1喝水4,5,6,7的混合液体
鼠2喝水2,3,6,7的混合液体
鼠3喝水 1,3,5,7的混合液体

貌似水0没有老鼠喝,但愿一个白鼠都没有死就是你水0有毒了.

这样小白鼠死亡表示1,不死亡表示0。鼠1,鼠2,鼠3组成个三位二进制(人类好残忍啊)
000对应水0有毒
001对应水1有毒

111对应水7有毒
1000瓶水和这个原理一样用十个小白鼠就找到那瓶水有毒了.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值