zoukankan      html  css  js  c++  java
  • 谜题:过桥问题

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

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

     

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

     

     

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

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

    (END_XPJIANG)

  • 相关阅读:
    iOS编程中比较两个日期的大小
    sqlite第三方类库:FMDB使用
    ios日期格式转换
    UISwipeGestureRecognizer 左右事件捕捉
    iOS7.0中UILabel高度调整注意事项
    【java基础】Java反射机制
    【struts2】ActionContext与ServletActionContext
    【struts2】OGNL
    【struts2】值栈(后篇)
    【struts2】值栈(前篇)
  • 原文地址:https://www.cnblogs.com/xpjiang/p/4485189.html
Copyright © 2011-2022 走看看