1000瓶水和10只小白鼠(送分)

baili35 2010-04-30 09:40:49
昨晚和1000里外女友的吵架,夜里失眠,睡不着帮人写了200多行代码后想起昨天在论坛上看的一个问题大致内容如下:

有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瓶水和这个原理一样用十个小白鼠就找到那瓶水有毒了.
...全文
给本帖投票
2837 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
force132 2012-09-25
  • 打赏
  • 举报
回复
终于看懂了,想不到2进制这么牛b
郭亿零 2010-09-30
  • 打赏
  • 举报
回复
顶了,楼主真不简单啊…
hellodota121 2010-05-15
  • 打赏
  • 举报
回复
太猛了,学习
szlq9 2010-05-14
  • 打赏
  • 举报
回复
高手学习一下
xhp718 2010-05-13
  • 打赏
  • 举报
回复
学习了 啊
span_114 2010-05-13
  • 打赏
  • 举报
回复
先拿回去学习下、、
rong_jerry 2010-05-13
  • 打赏
  • 举报
回复
看了两遍才明白
mature1 2010-05-12
  • 打赏
  • 举报
回复
为何可以做到这点是因为排列组合Pnn=n!
6!=720,也就是说6只老鼠可以标记720个瓶子
7!=5040,也就是说7只老鼠可以标记1000个以上的瓶子,甚至可以达到5000
利用2进制算法5000至少需要13只老鼠 2的13次方 8192,因此我能想到的最少老鼠是7只
找7个碗
列表按排列组合的顺序对应1-1000个瓶子
每个瓶子分别按其对应的值倒入相应碗里,每只老鼠分别喝一碗,看最后是怎么死的
mature1 2010-05-12
  • 打赏
  • 举报
回复
还有更简单的,我只要7只。
baili35 2010-05-12
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 liuyu_nz 的回复:]
楼主认识高人
[/Quote]


什么意思哦.
liuyu_nz 2010-05-12
  • 打赏
  • 举报
回复
楼主认识高人
syilo 2010-05-04
  • 打赏
  • 举报
回复
吵架的妙用,哈哈
loop_k 2010-04-30
  • 打赏
  • 举报
回复
学习了 接分
lihuifeng1 2010-04-30
  • 打赏
  • 举报
回复
不错··· 二进制是很有用的东西···
xyzjanker 2010-04-30
  • 打赏
  • 举报
回复
帮忙顶起!!!!!!!!
这不是鸭头 2010-04-30
  • 打赏
  • 举报
回复
经典。
有意思...
visualassist4680 2010-04-30
  • 打赏
  • 举报
回复
jf1
1000 老鼠的问题就是查找算法,想明白了就简单了
iqyely 2010-04-30
  • 打赏
  • 举报
回复
(~ o ~)~zZ
尹成 2010-04-30
  • 打赏
  • 举报
回复
楼主的见解真是独到!
liruda 2010-04-30
  • 打赏
  • 举报
回复
这个原理貌似那个XX校验, 忘了.
加载更多回复(14)

19,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧

手机看
关注公众号

关注公众号

客服 返回
顶部