文章插图
以上是我认为最重要的,也是最具一般性的、放之四海都可用的思维法则。一些更为“问题特定”的,或更为现代的启发法,可以参见《如何解题:现代启发式方法》以及所有的算法书。不过,在结束这一节之前,还有两个有趣的启发法值得一提:?下意识孵化法。这个方法有点像老母鸡孵小鸡的过程:我们先把问题的吃透,放在脑子里,然后等着我们的下意识把它解出来。不过,不宜将这个方法的条件拉伸过远,实际上,除非能够一直保持一种思索的状态(金出武雄所谓“思维体力”),或者问题很简单,否则一转头去做别的事情之后,你的下意识很容易就把问题丢开了。据说庞加莱有一次在街上,踏上一辆马车的那一瞬间,想出了一个重要问题的解。其他人也想仿效,结果没一个人成功。实际上,非但马车与问题无关,更重要的是,庞加莱实际上在做任何事的时候除了投入有限的注意力之外,其他思维空间都让给了那个问题了。同样,阿基米德从浴缸里面跳出来也是如此;如若不是经过了极其痛苦和长时间的思索,也不会如此兴奋。如果你也曾经花过几天的时间思考一个问题,肯定也是会有类似的经历的。?烫手山芋法。说白了,就是把问题扔给别人解决。事实上,在这个网络时代,这个方法有着无可比拟的优越性。几乎任何知识性的问题,都可以迅速搜索或请教到答案。不过,如何在已知知识之外发掘出未知知识,如何解决未知问题,那就还是要看个人的能力了。数学界流传一个与此有关的笑话:如果你有一个未解决问题,你有两个办法,一,自己解决它。二,让陶哲轩对它感兴趣。除了波利亚的书之外,陶哲轩的《Solving Mathematical Problems》也对解题的启发式思路作了极有意义的介绍,他在书的第一章遵循波利亚的思路从一个具体的题目出发,介绍了如何运用波利亚在书中提到的各种启发式方法来对解题进行尝试。解题练习的最重要目的不是将特定的题目解出来,而是在于反思解题过程中的一般性的,跨问题的思维法则。简单的将题目解出来(或者解不出来看答案,然后 “恍然大悟”),只能得到最少的东西,解出来固然能够强化导致解出来的那个思维过程和方法,但缺少反思的话便不能抽取出一般性的东西供更多的题目所用。而解不出来,看答案然后“哦”的一声更是等同于没有收获,因为“理解”和“运用”相差何止十万八千里。每个人都有过这样的经历:一道题目苦思冥想不得要领,经某个人一指点其中的关键一步,顿时恍然大悟——这是理解。但这个理解是因为别人已经将新的知识(那个关键的一步)放到你脑子里了,故而你才能理解。而要运用的话,则需要自己去想出那关键的一步。因此,去揣测和总结别人的思维是如何触及那关键的一步,而你自己的思维又为什么触及不到它,有一些一般性的原则可以指导你下次也能想到那个“关键的一步”吗,是很有意义的。我们很多时候会发现,一道题目,解不出来,最终在提示下面解出来之后,发现其中并没有用到任何自己不知道的知识,那么不仅就要问,既然那个知识是在脑子里的,为什么我们当时愣是提取不出来呢?而为什么别人又能够提取出来呢?我怎么才能像别人那样也提取出相应的知识呢?实际上这涉及到关于记忆的最深刻的原理,实际上文中已经提到了一些。(有兴趣的建议参考以下几本书:《追寻记忆的痕迹》,《找寻逝去的自我》,《Synaptic Self》,《Psychology of Problem Solving》)一般性的思维法则除了对于辅助联想(起关键的知识)之外,另一个作用就是辅助演绎/归纳(助探),一开始学解题的时候,我们基本上是先读懂题目条件,做可能的一些显然的演绎。如果还没推到答案的话,基本就只能愣在那里等着那个关键的步骤从脑子里冒出来了。而所谓的启发式思维方法,就是在这个时候可以运用一些一般性的,所有题目都适用的探索手法,进一步去探索问题中蕴含的知识,从而增大成功解题的可能性。启发式的思维方法有很多,从一般到特殊,最具一般性的,在波利亚的《How to Solve It》中已经基本全部都介绍了。一些更为特殊性的(譬如“如果全局搜索空间没有递归结构,那么考虑分割搜索空间”,譬如那些“看到XX,要想到YY”的联系),则需要自己在练习中不断抽象总结。让学员懂得理解和运用的本质区别,才可以极大的提高学员的学习效率。但如果学员本身就不想去思考的话,一切都无从谈起。。。平庸是常态,我们应该接受平庸,我本人或许也只是一个平庸的教师,但教师的最大价值或许就是尽力让平庸的孩子也可以自食其力。