设为首页收藏本站
PENBBS.COM第26季墨水隆重上市,详情请点击。

钢笔论坛

 找回密码
 论坛注册(注册原因请填:钢笔)

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 3712|回复: 19
打印 上一主题 下一主题

毒药与老鼠的问题

  [复制链接]
跳转到指定楼层
1#
发表于 2012-10-26 00:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有 1000 个一模一样的瓶子,其中有 999 瓶是普通的水,有一瓶是毒药。任何喝下毒药的生物都会在一星期之后死亡。现在,你只有 10 只小白鼠和一星期的时间,如何检验出哪个瓶子里有毒药?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
2#
 楼主| 发表于 2012-10-26 00:48 | 只看该作者
网上的答案:
将10只老鼠剁成馅儿,分到1000个瓶盖中,每个瓶盖倒入适量相应瓶子的液体,置于户外,并每天补充适量相应的液体,观察一周,看哪个瓶盖中的肉馅没有腐烂或生蛆。
回复 支持 反对

使用道具 举报

3#
 楼主| 发表于 2012-10-26 00:49 | 只看该作者
本帖最后由 零下one度 于 2012-10-26 00:58 编辑

另一种答案

把一千个瓶子从0开始用二进制编号,0号一直到1111100111,把十个老鼠从1到10标号,给第k只老鼠服下二进制编号中第k位为1的所有药水;一周后如果第k只老鼠死了那么有毒的药水所在的瓶子编号第k位就是1,否则为0,这样就可以确定哪个瓶子有毒了...所以理论上10只老鼠最多可以鉴别出1024个瓶子...
...
%        序号        二进制编号        十进制编号
%           1        0000000000           0
%           2        0000000001           1
%           3        0000000010           2
%           4        0000000011           3
%           5        0000000100           4
%           6        0000000101           5
%           7        0000000110           6
%           8        0000000111           7
%           9        0000001000           8
%          10        0000001001           9
%          11        0000001010          10
%          12        0000001011          11
%          13        0000001100          12
%          14        0000001101          13
%          15        0000001110          14
%          16        0000001111          15
%          17        0000010000          16
%          18        0000010001          17
回复 支持 反对

使用道具 举报

4#
发表于 2012-10-26 00:54 | 只看该作者
1. 将所有瓶子编号,1、2、3、... 、1000;
2. 将所有编号转换成对应二进制数, 0000000001,0000000010,0000000011,...,1111101000;
3. 给1号小白鼠吃所有二进制数最低位为1的药,如,1、3、5、7、...
    给2号小白鼠吃所有二进制数中,次低位为1的药,如,2、3、4、6、...
    3,4,5,6,7,8,9以此类推...
 给10号小白鼠,吃所有二进制数中,右数第10位为1的瓶子对应的药,如,512、513、514、...
4. 最后,根据死去的小白鼠就可以推断出是哪瓶为毒药,如,第2、4、7、9个小白鼠死了,那么对应的二进制数为0101001010,即,第660瓶为毒药!
回复 支持 反对

使用道具 举报

5#
发表于 2012-10-26 00:57 | 只看该作者
我拿baidu搜的!
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2012-10-26 00:59 | 只看该作者
我拿baidu搜的!
大灯 发表于 2012-10-26 00:57

我觉得想到用二进制的这个人很厉害
回复 支持 反对

使用道具 举报

7#
发表于 2012-10-26 01:07 | 只看该作者
如果是我的话,就先把瓶子编上号,然后找刑侦的朋友联系技术科,然后给技术科包个红包,请刑侦的朋友吃顿饭,三天内如果化验结果还没出来,就再补个红包给技术科……,如果到第五天还没有结果,就联系纪检委……横竖第六天都化验好了。
然后把小白鼠统统送给老伴儿当生日礼物。
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2012-10-26 01:08 | 只看该作者
如果是我的话,就先把瓶子编上号,然后找刑侦的朋友联系技术科,然后给技术科包个红包,请刑侦的朋友吃顿饭 ...
大灯 发表于 2012-10-26 01:07



   
回复 支持 反对

使用道具 举报

9#
发表于 2012-10-26 01:18 | 只看该作者
2^10>1000,这道题可以类推,三进制四进制等等,很经典~
回复 支持 反对

使用道具 举报

10#
发表于 2012-10-26 07:11 | 只看该作者
编程高手都在这里集结了,招程序员的考题么?
回复 支持 反对

使用道具 举报

11#
发表于 2012-10-26 09:56 | 只看该作者
牛掰啊。。。。。我还是看看天气···http://www.tianqi.com走吧
回复 支持 反对

使用道具 举报

12#
发表于 2012-10-26 12:27 | 只看该作者
显然第一个答案是正解。
回复 支持 反对

使用道具 举报

13#
发表于 2012-10-26 12:45 | 只看该作者
像我这样苦逼的文科生还是选第一种吧
回复 支持 反对

使用道具 举报

14#
发表于 2012-10-26 13:06 | 只看该作者
程序猿NB啊。。。
回复 支持 反对

使用道具 举报

15#
发表于 2012-10-27 11:23 | 只看该作者
算不出。。。。。
回复 支持 反对

使用道具 举报

16#
发表于 2012-10-27 18:24 | 只看该作者
不一定要知道二进制,本质是10只老鼠有没有喝某一瓶药水的全排列,懂排列组合就行了。
二进制只是在把这个全排列实现的时候的一种具体操作方法。
类似十枚不同的硬币,抛一次有几种情况,每种情况对应一瓶药水。
回复 支持 反对

使用道具 举报

17#
发表于 2012-10-29 07:16 | 只看该作者
如果是我的话,就先把瓶子编上号,然后找刑侦的朋友联系技术科,然后给技术科包个红包,请刑侦的朋友吃顿饭 ...
大灯 发表于 2012-10-26 01:07



    此方法极适合天朝国情
回复 支持 反对

使用道具 举报

18#
发表于 2012-10-29 12:03 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

19#
发表于 2012-10-30 16:27 | 只看该作者
回复 18# 九命飞猫


    这才是正解啊···
回复 支持 反对

使用道具 举报

20#
 楼主| 发表于 2012-10-30 22:34 | 只看该作者
我觉得这老鼠被毒死前 得先被水给灌死

另外 给一只老鼠喝100瓶水 即使有毒药 浓度被稀释100倍 毒性会 ...
九命飞猫 发表于 2012-10-29 12:03


有见地
回复 支持 反对

使用道具 举报

本版积分规则

PENBBS第27季墨水

小黑屋|手机版|Archiver|钢笔论坛 ( 桂ICP备12002903号  

GMT+8, 2024-6-7 17:42 , Processed in 0.174000 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表