读书人

程序员的来测试你的逻辑分析力!该怎么

发布时间: 2012-02-25 10:01:48 作者: rapoo

程序员的来测试你的逻辑分析力!!
我觉得作为程序员的逻辑分析能力非常重要!
比我高几界的一位师兄,说了一个题。
说是当时一个出名的教授在清华大学的一个演讲上提问的一个逻辑分析题,
问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


才```
怎么那么我不看清目```
------解决方案--------------------


10分钟没做出来的离散数学没学好,我记得是图论对于这种问题有详细的解释,这个教授也不怎么样

[解决办法]
一个大豹子,一个小豹子;一个大狮子,一个小狮子;一个大老虎,一个小老虎
船上两个必须是平等的,河的两边又是平等的。是一个条件组合问题。
1. 大小豹是平等,大小狮是平等,大小虎是平等;
2. 大豹大狮,大豹大虎
3. 小豹小狮,小豹小虎
船回来的路上只有一个,那么河的两边的组合肯定会变化成:假大狮在回来的船中,那么一边就是:小狮小虎小豹/小狮小虎,另一边就是大豹大虎/大豹小豹大虎。如此推吧,看每一种都是否成立。暂时还不知道是否真的有解。
[解决办法]
一个大豹子 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都接过来
=======================
大家看看俺地把,应该正确
[解决办法]
先小豹和小虎过,小豹回,小虎在对岸
再小狮和小豹过,小豹回,小虎和小狮在对岸
再大虎和大狮过,大狮小狮回,小虎和大虎在对岸
再大豹和小豹过,大虎小虎回,小豹和大豹在对岸
再大狮和大虎过,小豹回,大豹、大狮和大虎在对岸
再小虎和小豹过,小豹回,大豹、大狮和大虎、小虎在对岸
最后小豹和小狮过


这回应该没问题了吧,哈哈哈哈哈哈哈哈哈哈
[解决办法]
小豹子+小老虎过去 小豹子回
小豹子+小狮子过去 小豹子回
大老虎+大狮子过去 大老虎+小老虎回
大豹子+小豹子过去 大狮子+小狮子回
大狮子+大老虎过去 小豹子回
小豹子+小老虎过去 小豹子回
小豹子+小狮子过去



[解决办法]
1:
小豹带小狮和小虎逐个过河,小豹独自回来。
2:
大狮和大虎一起过河,大狮和小狮回来。
3:
大豹和小豹一起过河,大虎和小虎回来。
4:
大狮和大虎一起过河,小豹独自回来。
5:
小豹带小狮和小虎逐个过河。

读书人网 >C#

热点推荐