介绍几个思考问题的方法,这些内容在我看来是非常重要的,也是非常有实用价值的。
 
1.数学家的思考方法
先说一个数学家思考问题的方法。这个例子是很多年以前我在电视中看到的,当时没觉得怎么样,但是随着年龄的增加和处理的问题难度的加大,越来越开始体会到它的作用了。电视中在介绍数学家如何思考问题时举了下面这个烧水的例子。
 
假设我们能做一件事情,这件事情是将一个装满水的水壶放到炉子上,然后把这壶水烧开。所以当有人给你一个装满水的水壶,并要求你烧开水时,你是直接能够完成。好,现在假设有人把一个空的水壶拿给你,并且还是要求你烧开一壶水,那么你怎么解决这个问题?生活中处理这个问题是不用想的,直接把水灌到水壶中,然后放到炉子上烧就是了。但是我们用数学家的思维方式来解决这个问题时却需要费一点周折。数学家是按照下面步骤来思考的:
 
第一步,首先是意识到问题的差异,我们会处理的是装满水的壶,现在是空的水壶。放到实际工作中,这一步就是要求我们有足够的观察力,辨识能力和一种敏感的职业嗅觉来发现问题的关键点和解决问题的正确方向。这个和之前博文中提到的对比法是雷同的,只是使用的场合不同,当然难度也不同。实际上这也是一个分析问题的步骤,但是这个步骤只是一个简单的比较。通过这个比较让我们发现了差异,这个差异告诉我们难题和我们会解决的问题之间的联系。
 
第二步,然后考虑有没有办法把空的水壶处理成装满水的水壶。如果可以那么这个问题就解决了。数学家的思路的亮点是在这一步,这是一个开启解决问题之门的思考问题的技巧,让我们看到了从不会到会的希望。很多情况下这个时候,我们的想法是换方法,或者是简单就做出判断我不会,而不是想办法去创造或者说尝试创造我们解决问题所缺少的条件。这点上数学家的思维方式提供了一个重要的启示。
 
第三步,发现将空水壶处理成装满水的水壶方法之一(你也可以花钱让人替你做)是将水灌到空水壶中。注意这是一个发现,也是向解决问题迈出了一步,就这个例子而言还是关键的一步。所以这个发现非常重要。在实际工作的表现就是看你的知识,经验和获取的信息是否足够让我们来找到这个做法,同时对你如何使用你的知识也提出了要求。上面两个步骤是遇到问题和分析问题,这一步则是在分析的基础上发现解决问题的方法。
 
第四步,现在需要考察将水灌到空水壶中这件事情我们会不会做。在实际工作中的表现是在对一个问题思考分析后,对其中子问题(或者子步骤)的又一次思考。显然实际的情况是我们会做的,至少绝大部分能用手敲代码的程序员是会做的。好了,思考到这一步我们就可以知道这个问题是可以解决的。这里第二步是关键,第三,四步是主体。
 
这个例子或者说思考问题的方法,非常精彩的演示了如何使用已有的知识来解决一个自己已有知识没有覆盖的问题。当然这样的例子有很多,限于笔墨,就不在说了。
 
2.牛顿求解曲边梯形面积的方法
牛顿在他的传世名著数学原理中使用我们中学里的知识(现在的中学已经讲极限和导数了,这个不算,我是说我那个时候)定义并证明极限和导数,进而给出了曲边梯形面积的计算方法。这是我目前为止看到的用自己会的简单知识,解决难题的最终极的例子了。各位工科科班出来的都是学过高数的,建议看一下数学原理中那部分的推演和证明,就知道牛顿为什么是牛顿了。当然我想强调的是,这个例子告诉我们还不止是这些。
 
将数学原理中的证明过程,当然还包括遣词造句的论述部分,和我们学过的高等数学教科书中的证明做一个比较,我们会发现数学原理中牛顿的证明很简单,如果可以的话我想说是简陋。如果我用这样的描述来证明一个题目的话,那么我的高数老师是不会允许我过关的。教科书中极限的概念是用ε-δ语言来描述的,而牛顿基本上使用的是自然语言,甚至连符号都没有(这里申明一下翻译的水平问题不考虑在内),相比较而言牛顿的证明不算什么。这个事实给我们的启示在于,当我们在解决难题时,不一定就可以很快发现一个满意的解,而往往只是一个看上去有可能是解的解。这个时候我们还是要坚持下去的,因为有一个解相对于没有解你已经是一个很大的进步了,毕竟离目标近了一步。如果当年牛顿一定要等到用ε-δ语言描述极限概念时才来完成微积分的建立,那么工业革命有可能就会推迟一百年了。
 
3.大爆炸理论的线索
天文学家观察到一个现象,那就是所有的星体相互之间的距离越来越远。基于这个事实我们可以得出什么结论?科学们就此提出了宇宙大爆炸理论,就是说宇宙从一个非常小的所谓奇点开始爆炸,从而产生了现在的宇宙。那么科学家是如何从这个简单的事实推出大爆炸理论的呢?其推演过程简单的令人吃惊。如果现在此时此刻所有的星体正在彼此远离,那么过去的某一个时刻,所有的星体的位置就比现在的位置要近,这个结论很显然是对的。那么过去的过去的某一个时刻,所有星体的位置就比过去的某一个时刻的距离会更近一些,这个显然也正确。好了,照这个思路推理下去,星体的距离就会越来越近,最后只能在一起。于是大爆炸理论(当然刚开始应该只是一个假说)就这么诞生了。从这个例子可以看出优秀或者巧妙的思维方式对解决问题会产生不可估量的作用。在大爆炸这个例子中根本没有用到天文相关的任何专业知识,只是通过正确的推理,就得出了这个假说。希望开发者能够体会一下并从中吸取营养。
 
上面的三个例子是给我留下印象并对我产生指导作用的例子,我相信类似的例子会有很多,大家可以找出适合自己的。数学家例子是最基础也是最重要的,我觉的所有的方法都可以从这个例子中推演出来。牛顿的例子说明的如何创造性的使用知识,最后的例子是考验我们的智商了,或者说观察力了。