日期:2014-05-19  浏览次数:21009 次

程序员的来测试你的逻辑分析力!!
我觉得作为程序员的逻辑分析能力非常重要!
比我高几界的一位师兄,说了一个题。
说是当时一个出名的教授在清华大学的一个演讲上提问的一个逻辑分析题,
问10分钟内有哪位能把答案说出来
结果10分钟只有一位说能说出,但在说答案的过程中还是说错了;
当时听演讲的人,基本上都是高才生,但逻辑分析力还不怎么样
现在看我们程序员的了,也可以知道自己的逻辑分析能,题目不难

题目是这样的:
问:
                一个大豹子,一个小豹子;一个大狮子,一个小狮子;一个大老虎,一个小老虎
                一条船,要过一条河(即:从一边岸到另一边岸)。
怎样才能全部过到对面岸???

关键条件:(1)三个大的都会划船,小的只有小豹子会划船;
                    (2)船最多只能承受两个,或者是两大的,或者是两个小的,或者是一个大和一个小
                        (当然船上必须有会划船的家伙,否则船是没法前进的)
                    (3)当同类的大的不在小的旁边时候,小的会被不同类的大的吃掉
                        (不明白的,可以给你举例子,如:让小老虎和大豹在一起的时候,小老虎肯定没有了,被大豹子吃了,呵呵)
                    (4)船只有一条,当船被划到对面岸了,那必须有一个把船送回来才能让别的过去

注意:1、你最好自己先想想答案,先不要看别人的答案。。
            2、如果都大家都没有人说出答案的,到时我会说出答案
            3、我相信我们程序员都能想出的
            4、看了题目先回答一下自己行的
            5、有还不懂得题意的,可以再个清楚

当时我想27分钟才想出来,相信很多10几分钟能说出来吧


------解决方案--------------------
1、大虎+小虎,大虎回。
2、小豹+小狮,小豹回。
3、大虎+大狮,大狮+小狮回。
4、大豹+小豹,大虎+小虎回。
5、大狮+大虎,小豹回。
6、小虎+小豹,小豹回。
7、小豹+小狮 over
------解决方案--------------------
zhougod() ( ) 信誉:100 Blog 加为好友 2007-07-09 13:02:42 得分: 0
1、大虎+小虎,大虎回。
2、小豹+小狮,小豹回。
3、大虎+大狮,大狮+小狮回。
4、大豹+小豹,大虎+小虎回。
5、大狮+大虎,小豹回。
6、小虎+小豹,小豹回。
7、小豹+小狮 over

----------------------------------------
这个应该是正确答案吧,无懈可击了。
实际上是等于先把三个大的先过去了,然后小豹子再带小的。

唉唉,自己也想到回来的时候可以是2个一起回,但没想到那么多步。
顶一顶算了。
------解决方案--------------------
1、大虎+小虎,大虎回。
2、小豹+小狮,小豹回。
3、大虎+大狮,大狮+小狮回。
4、大豹+小豹,大虎+小虎回。
5、大狮+大虎,小豹回。
6、小虎+小豹,小豹回。
7、小豹+小狮 over

这个是正确的,

http://zfuwen.com
------解决方案--------------------
一个大豹子 A
一个小豹子 a
一个大狮子 B
一个小狮子 b
一个大老虎 C
一个小老虎 c
AaBC四个家伙会划船.

过程如下
AaBbCc----空
ABCc----ab
AaBCc----b
ABC---abc---a把bc都送到对岸
AaBC---bc
Aa---BbCc
AaBb---Cc---到此,变为四只小动物的问题,而不是原来的六个
Bb---AaCc
BbCc---Aa
bc---AaBC
下面不写了,就是让a把bc都接过来



------解决方案--------------------
小豹子+小老虎过去 小豹子回
小豹子+小狮子过去 小豹子回
大老虎+大狮子过去 大老虎+小老虎回
大豹子+小豹子过去 大狮子+小狮子回
大狮子+大老虎过去 小豹子回
小豹子+小老虎过去 小豹子回
小豹子+小狮子过去 OVER

不知道用了多久
------解决方案--------------------
容易犯错误的地方在:

回去的时候老是从 上一次过来的两个中选取,

这种错误经常出现,因为,上次思考的时候,里面是2个对象,下次考虑的时候,老是优先考虑这两个,导致思路受阻,真正解决的事,一步一步,每一步都要有一个状态更新和初始化的过程,问题就明白了很多,

这个问题以前好像是说一个微软的面试题,求最小值的问题, 呵呵 ,
------解决方案--------------------
小豹子+小老虎过去 小豹子回
小豹子+小狮子过去 小豹子回
大老虎+大狮子过去 大老虎+小老虎回
大豹子+小豹子过去 大狮子+小狮子回
大狮子+大老虎过去 小豹子回
小豹子+小老虎过去 小豹子回
小豹子+小狮子过去 OVER


這個才對```
怎么那么我沒不看清題目```
------解决方案--------------------