zoukankan      html  css  js  c++  java
  • 考考你:一道题引发的小思考

    有位朋友给出了一道题:

    有两列火车相距100千米,在同一条轨道上相向行驶,一列火车的速度是每小时30千米,另一列的速度是每小时20千米。当两列火车相距100千米时,一只鸟以120千米的时速开始从火车A飞向火车B,到达后再飞回火车A,如此往复直至两列火车相撞。当两列火车相撞时,鸟一共飞了多远?

    看到这道题,第一直觉是 100 千米,可不就是两列火车一共行驶的距离么 ?错了。这是受到了脑筋急转弯的影响,但是弯转错了额。你能想象人体内的血管连起来可以绕地球两周半吗 ?

    不能马上得出结论,只好计算了。第一次鸟飞了 100 / (120+20) 120 = 600/7 千米;第二次鸟飞了 (600/7 - 150 /7 ) / (120+30) 120 = 360 / 7 , …… ,算起来没完没了了 。

    仔细想想,肯定有巧解之法。你想到了么 ?

    朋友说,这个问题如果能够从最终结果反推,就很容易得到答案了。嗯,这是她的独特心得。

    我能从中获得什么收获呢 ?能够跳出条框的思考,固然很棒, 但在那一刹那的灵感突现之前,其实并不容易做到。

    进而我想到,这道题有两种求解思维:一种加法思维,一种乘法思维。第一本能是加法思维,把每一趟鸟飞的距离加起来,但是计算繁琐;不容易想到的是乘法思维:鸟飞行的距离 = 鸟飞行的时间 * 速度。当想到这一点时,仿佛在一瞬间获得了某种洞察力。你超越了表面的极具迷惑性的形式。

    这说明,我们在求解问题时,常常容易陷入到第一本能思维,被形式牵着走。但其实跳出来一看,是否还有其他的途径呢 ?不妨先发散一下。

    这就好比深度优先遍历算法和广度优先遍历算法。深度优先遍历算法,一根筋走到底,不入死胡同不回头;广度优先遍历算法,则会先找出所有可能的途径,然后沿着某个途径再寻找多个途径。依次反复。

    在思考解决方案的初期,显然广度优先遍历更容易让人看到整体,更容易让人去探索一种洞察力,而不被本能思维所束缚,尽管本能思维在处理常规问题上游刃有余。

  • 相关阅读:
    Leetcode53_Spiral_Matrix
    leetcode 分类
    bash 脚本
    关闭占用端口
    blue bossa
    判断对称二叉树
    This server is in the failed servers list: localhost/127.0.0.1:16000 启动hbase api调用错误
    在cikuapi.com上抓取相关词
    那些天使用AWS填过的坑和注意事项
    一百个人的十年-读后感
  • 原文地址:https://www.cnblogs.com/lovesqcc/p/12483232.html
Copyright © 2011-2022 走看看