`
kaowww153
  • 浏览: 72861 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

发散思维 智力题

阅读更多

上次在在javaeye 上看到一个智力题:

大概是1000瓶药中有一瓶是毒药,老鼠在喝道毒药后24小时死亡,在24小时内最少用多少只老鼠可以检测出老鼠。

发现居然和我以前做过的智力题有点相似

以前的是 8个苹果其中一个比其他的轻,最少用几次可以用天平称出这个最轻的。

在javaeye上看到一个比较经典的回答

把老鼠的生死看成一个开关

所有每只老鼠可以产生2种情况

这样2的10次方就可以产生1024种情况

具体实现是这样的

比如有A,B两只老鼠

有4个瓶子 a,b,c,d

A喝a,b    B喝b,c

这样

A死B死     b

A活B活     d

A活B死     c

A死B活     a

也就是2的2次方 可以判断4个瓶子

 

 

同理2的3次方 就是最多8个瓶子

把8个瓶子每两个分成一组后就可以按照上面的方法测出8个瓶子中的毒瓶。

所以最后的答案是10。

 

发现苹果的也可以这样

1.把天平称称一次当做老鼠的个数

2.把天平称一次出的结果当做老鼠的死活

这里有3种结果,一般称的时候是3个苹果 A,B,C

两个A,B放在上面

天平平衡 C是轻的苹果

否则是 A或B

3.苹果的个数是老鼠的个数

所以3的2次方是9    称2次最多可以测出9个苹果中的轻苹果,当然也就可以称出8个的咯。

所以苹果的答案是2。

 

 

 

分享到:
评论
3 楼 Coder211 2011-03-29  
香农信息论可以算出:
1000瓶中判断一瓶毒药的信息量
I1 =  -log(2,1/1000) = log(2, 1000), 9 < I1 < 10
利用老鼠的是否死亡获得的信息量
I2 =  -log(2,1/2) = log(2, 2) = 1;
所以,需要的最少的老鼠数量是  I1/I2
而 9 < I1/I2 < 10
因此答案是 10.
2 楼 Coder211 2011-03-29  
学习一下信息论就可以直接算出来。
1 楼 yuxiaojicai 2010-11-06  
大概是1000瓶药中有一瓶是毒药,老鼠在喝道毒药后24小时死亡,在24小时内最少用多少只老鼠可以检测出老鼠。

我觉得答案应该是1,极限情况。

相关推荐

Global site tag (gtag.js) - Google Analytics