转自http://www.matrix67.com/blog/archives/2671

 注。matrix67老人家没写发现算法的过程,只给出了算法。而本人又是那种非要理解分析过程才能消停的人,但是IQ有限,只能慢慢啃了。

而且网上的智力题很多都是只有答案,没有分析的过程,这个比较郁闷。所以我就想把那么自己理解的列出来,供大家参考。

转载请注明出处,不枉俺劳心劳神 :)。

 

2012-05-16

1. 给一个瞎子52张扑克牌,并告诉他里面恰好有10张牌是正面朝上的。要求这个瞎子把牌分成两堆,使得每堆牌里正面朝上的牌的张数一样多。瞎子应该怎么做?

这个比较好玩,刚看到的时候就想,解肯定是某种固定的值,而且也注意到最要只要求牌数朝上一样多,可没说几张。

所以存在翻转纸牌来变换朝上牌数的可能。然后自己动手搞了两个参数x,y,之后就容易看出来了。

 

数学转化:

设从52张扑克牌中,从朝下的42张取出x张,从10张朝上的取出y张,放到另一堆。

要是两堆朝上相等,则应该有

10-y = x或者10-y = y。(因为可以把取出的x+Y张翻转,记得到有x个面朝上的)

求x+y的数值是多少。

显然x+y=10 :)。

即随即取10张即可。

 

2012-05-17.

下面这个我也是琢磨了半天,没解出来,最后看了答案也是云里雾里的。下班的时候又琢磨了一下,才想明白发现解的过程。

2. 五个洞排成一排,其中一个洞里藏有一只狐狸。每个夜晚,狐狸都会跳到一个相邻的洞里;每个白天,你都只允许检查其中一个洞。怎样才能保证狐狸最终会被抓住?

分析过程。将洞口编号1,2,3,4,5. 设每次查看之后狐狸下一次所在的洞集合为A,初始为{1,2,3,4,5}。

最后要抓住狐狸,就要使每次查看之后,狐狸下次藏身之所的结合起码不能变为前几次所找之后集合或者增加,即应该变化为新的集合(数目不变),或者减少。不然就陷入死循环了。

1)分析第一次要查看的洞口。

如果为1号,那么下次藏身之所的集合还是{1,2,3,4,5},显然不行,同理3,5号也不行。

所以只能选择2或者4.(二者显然是等价的,所以这也就告诉我们存在多种解)。

不妨从2开始。

选择2之后,若没有,则集合A 为{2,3,4,5}。

(2)按上述方法继续分析,可知下次应该找3或者4,因为选2或者5之后,集合A不变.(二者显然等价)

假设找3.若没有,则A变为{1,3,4,5}

分析之,假设找1,那么集合A变为{2,3,4,5},则集合A又变到了(1)情况,死循环,否决之。

假设找3,那么集合A变为{2,3,4,5},还是不行。

假设找4,那么集合A变为{2,4} 可行。

假设找5,那么集合A变为{2,3,4,5},否决。

综上,第二次应该找3,之后集合A变为{2,4}。

(3) 第三次寻找,显然2,4此时等价。

不妨假设找2.

则集合变为A变为{3,5}

(4)假设找5,则集合A变为{2,4},为之前出现过的集合,否决。

只能找3了, 若没有,则集合A之后只能为{4}。

(5)找4,抓住了这个狡猾的狐狸!

所以次序是2,3,2,3,4.

当然,就像分析过程中看到的,会有多种解,自己动手试试吧.

 

 

 

posted on 2012-05-16 15:42  laskfla  阅读(436)  评论(2编辑  收藏  举报