考考你:一道题引发的小思考
有位朋友给出了一道题:
有两列火车相距100千米,在同一条轨道上相向行驶,一列火车的速度是每小时30千米,另一列的速度是每小时20千米。当两列火车相距100千米时,一只鸟以120千米的时速开始从火车A飞向火车B,到达后再飞回火车A,如此往复直至两列火车相撞。当两列火车相撞时,鸟一共飞了多远?
看到这道题,第一直觉是 100 千米,可不就是两列火车一共行驶的距离么 ?错了。这是受到了脑筋急转弯的影响,但是弯转错了额。你能想象人体内的血管连起来可以绕地球两周半吗 ?
不能马上得出结论,只好计算了。第一次鸟飞了 100 / (120+20) 120 = 600/7 千米;第二次鸟飞了 (600/7 - 150 /7 ) / (120+30) 120 = 360 / 7 , …… ,算起来没完没了了 。
仔细想想,肯定有巧解之法。你想到了么 ?
朋友说,这个问题如果能够从最终结果反推,就很容易得到答案了。嗯,这是她的独特心得。
我能从中获得什么收获呢 ?能够跳出条框的思考,固然很棒, 但在那一刹那的灵感突现之前,其实并不容易做到。
进而我想到,这道题有两种求解思维:一种加法思维,一种乘法思维。第一本能是加法思维,把每一趟鸟飞的距离加起来,但是计算繁琐;不容易想到的是乘法思维:鸟飞行的距离 = 鸟飞行的时间 * 速度。当想到这一点时,仿佛在一瞬间获得了某种洞察力。你超越了表面的极具迷惑性的形式。
这说明,我们在求解问题时,常常容易陷入到第一本能思维,被形式牵着走。但其实跳出来一看,是否还有其他的途径呢 ?不妨先发散一下。
这就好比深度优先遍历算法和广度优先遍历算法。深度优先遍历算法,一根筋走到底,不入死胡同不回头;广度优先遍历算法,则会先找出所有可能的途径,然后沿着某个途径再寻找多个途径。依次反复。
在思考解决方案的初期,显然广度优先遍历更容易让人看到整体,更容易让人去探索一种洞察力,而不被本能思维所束缚,尽管本能思维在处理常规问题上游刃有余。