代码改变世界

谜题:过桥问题

2015-05-07 16:27  星星之火✨🔥  阅读(3022)  评论(0编辑  收藏  举报

有4 个人打算过桥,他们都在桥的某一端,我们有17 分钟让他们全部到达大桥的另一头。时间是晚上,它们只有一只手电筒。最多只能有两个人同时过桥,而且必须携带手电筒。必须步行将手电筒带来带去,即扔来扔去是不行的。每个人走路的速度是不同的:甲过桥要用1 分钟,乙要2 分钟,丙要5 分钟,丁要10 分钟。两个人一起走的速度等于其中较慢的人的速度。例如,如果第一次让甲和丁一起过桥,当他们到大桥的另一端的时候,已经消耗10 分钟了,如果再由丁带回手电筒,一共20 分钟就过去了,这样,任务就以失败告终(注意,根据因特网上的传言,有一家位于西雅图附近的著名软件公司,它的主考官就是用这个问题考面试者的)。

那么,问题来了,聪明的你,能解决这个问题吗(或者找到解法,或者给出证明不可能用17分钟让他们全部过桥)?

 

 

 

 

 

 

 

 

 

 

 

 

[hint: 通过类比的思想,可以先思考一下以前我们有没有遇到过类似的问题,其实有一个经典的过桥问题(就是一个农夫、一只狼、一只羊和一筐草的问题),应该绝大多数人都知道吧,我可还记得,大约是在小学四五年级的时候,姐姐给我提了这个问题,晚上睡觉前我就想到解法了,老姐那时还不知道答案,我还解释了半天呢:-]

 

 

 

 

 

 

 

 

 

费点心思,还是不难找到答案的,我的解法是这样的:首先让甲和乙过桥,然后甲(或者乙)一个人把手电筒带回来,然后丙和丁过桥,然后乙(或者甲)一个人再把手电筒带回来,最后甲和乙过桥,时间刚好是17 分钟。可以看到,此过桥问题与农夫过桥问题的不同之处就是,农夫过桥问题的第一步是确定的,就是他把咩带过去,而对于我们这个过桥问题,第一个步骤却不那么显然

这个问题给我的启示就是:思考问题一定要多站在不同的角度揣摩,由于不靠谱的教育模式,我们思考问题往往受限于常规的思维框架中,这时就需要有勇气打破常规,尝试把自己的思维发散开来。

(END_XPJIANG)