小白鼠问题

科比布莱恩特 2010-09-02 11:33:12
有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,最少需要多少只小白鼠才能在24小时时鉴别出那瓶水有毒。
...全文
493 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zenny_chen 2010-09-02
  • 打赏
  • 举报
回复
偶也是想10只。
但是这个方法太残忍了。因为最坏情况下可能要牺牲掉所有这10只卡哇伊的小白鼠……
yskcg 2010-09-02
  • 打赏
  • 举报
回复
http://forum.byr.edu.cn/article/SoftDesign/19611 给个地址给你,现在这个答案还是很有争议的。
  • 打赏
  • 举报
回复
楼主这么有兴趣就 google一下,很多此类面试题的。

什么有1000个苹果,有10个筐,每个筐可以放任意个苹果,要怎么放,才可以任意报1到1000的数n,你给人家整数个筐,使得筐里的苹果总数为n?

记得好像是李开复的一道面试题。
  • 打赏
  • 举报
回复
第一瓶药水给 第一只老鼠
第2瓶给 第2只
第3瓶给 第1+第2只



继续。。不解释了。、。、
  • 打赏
  • 举报
回复
old
2进制
10只
Jim_King_2000 2010-09-02
  • 打赏
  • 举报
回复
1000瓶水就是用二进制给1~1000进行编码。因为2^10 = 1024,因此10位就足够。因此答案是10只小白鼠。
Jim_King_2000 2010-09-02
  • 打赏
  • 举报
回复
四瓶水的情况,就是用二进制给1~4来进行编码,很显然,下面的编码就足够了:
00
01
10
11
每一位代表一只小白鼠,而数字代表瓶子的编号。例如第四瓶编号为11,那么就表示第四瓶同时喂给小白鼠1和小白鼠2. 第二瓶编号为01,表示喂小白鼠2。编号00表示两只小白鼠都不喂。
Jim_King_2000 2010-09-02
  • 打赏
  • 举报
回复
考虑有四瓶水,其中一瓶有毒的情况。
我们可以把第二瓶水和第四瓶水给小白鼠1,把第三瓶水和第四瓶水给小白鼠2。这样会有四种情况。
1、两只小白鼠都不死。很显然,第二瓶第三瓶第四瓶都无毒,,有毒的是第一瓶。
2、小白鼠1死,2不死。第三瓶第四瓶无毒,有毒的是第二瓶。
3、小白鼠1不死,2死。第三瓶有毒。
4、小白鼠1和2都死。第四瓶有毒。
xiaozhuhaoa 2010-09-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 tu_lq 的回复:]
10只,吧1000瓶药水按0-999编号
吧小白鼠按0-9编号,作为二进制位0-9,分别表示2的0次方到9次方
比如说第514瓶药水
514=512+2 2的9次方+2的1次方,那么就给9号小白和1号小白喝
把所有的药水都分完
最后将死掉的小白鼠按照他们的权值加出来那个数,就是有毒药水的编号
[/Quote]
人才~~~
Jim_King_2000 2010-09-02
  • 打赏
  • 举报
回复
我们假设只有两瓶水,其中一瓶有毒。那么,很简单,我们可以用一只小白鼠去尝第一瓶水。若小白鼠死,则第一瓶水有毒,否则第二瓶水有毒。
hai040 2010-09-02
  • 打赏
  • 举报
回复
2进制,10只
水、鼠编号
编号00001 00001的水就第5和第10只鼠尝
toplinq 2010-09-02
  • 打赏
  • 举报
回复
10只,吧1000瓶药水按0-999编号
吧小白鼠按0-9编号,作为二进制位0-9,分别表示2的0次方到9次方
比如说第514瓶药水
514=512+2 2的9次方+2的1次方,那么就给9号小白和1号小白喝
把所有的药水都分完
最后将死掉的小白鼠按照他们的权值加出来那个数,就是有毒药水的编号
shi3590 2010-09-02
  • 打赏
  • 举报
回复
标记等答案,应该不会是999只。。
hai040 2010-09-02
  • 打赏
  • 举报
回复
好像见过
就在这个版
zenny_chen 2010-09-02
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 zenny_chen 的回复:]

偶也是想10只。
但是这个方法太残忍了。因为最坏情况下可能要牺牲掉所有这10只卡哇伊的小白鼠……
[/Quote]
不好意思,一共1000只,哈哈。
最后应该总能活下一只。

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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