读《怎样解题:数学思维的新方法》有感

看程序员应该读哪些书,找到这本书,便读了一下。
这本书是作者作为一名数学家讲关于如何解数学题的,但是用来解决编程问题,也是相当有帮助的。

“好的思路来源于过去的经验和知识”–波利亚
个人感觉这句话是这本书的假设前提, 想想看,一个只有小学水平数学能力,能解决大学中的数学问题吗? 这个靠什么技巧都是弥补不了的。 但是有人为什么面对的是小学水平的难题,或者稍微更难的问题时,他已经具备了相应的知识,为什么还是解决不了呢?这本书就是帮助你解决这样的问题的,通过提问的方式来引导自己的思维。
当然个人还是要在平时,注意积累经验和知识,这个是核心。

我们要具备这样的心态,面对问题,不能守株待兔,等待灵感自己到来,而是主动出击,把想法逼出来,记住,最糟糕的情况不是有错误的想法,而是没有任何想法。

面对问题,是有一定流程的。接下来就是说说书中的流程(个人看法,不一定准)

理解题目
那问题来了,怎么才算理解题目?
那就是拆分,面对复杂的事物,拆分它是很好的行为,作者是把它拆分 未知量,已知数据,条件(在编程中理解为约束条件我觉得更加容易理解)。记住,一定要用语言描述出这些因素,不能光是感觉,所以说,有时候,你光是把问题描述出来,就已经解决问题了,不过不是每次都这么幸运。
说说一些比较无关的话,大脑是不擅长记下所有的事情的,尤其是细节,它的运行方式是记下重点,然后由重点想到其他重点,像是网状结构,一个点联想的另一个点。 就像眼睛所看的,眼睛看到的不是所有的景象,其实是有一部分是大脑通过想象来补充的。所以刚开始摄取信息的时候,要有意思的舍弃某些无关的信息,抓住重点。但那些又是重点呢?上面这些因素是最有可能是问题的要点,当然也许有其他因素也要考虑,但在考虑上面的因素再考虑其他因素比较合适。

找到已知数据与未知量之间的关系?如果找不到,你也许不能不去考虑辅助题目?
在这步骤中,是这本书中技巧最多,也是很核心的一步。

是否知道以前有一道和它类似的题目? 比如有相似的条件或者是未知量。
如果有一道和它紧密相关的题目,也许你就可以解决了。 ‘

没有的话,就要考虑变换题目了。
普通化,特殊化,使用类比,放弃一部分条件,分解和重组,倒着干等技巧。
如果你运气不好,如果都没成功,那你就瞎试吧,说不定运气好,碰巧让你发现解决的办法了,这种情况我就碰到很多次,不过这终究是无奈之举,最后再用。
这些我就不具体讲了,关键是通过变化条件,未知量,数据这三个因素来达到变化题目激发思考的目的。

3.执行方案
这个在数学问题上是需要验证的,编程的话,只需要跑一跑就知道了,但是要注意的是这么做会不会存在漏洞,或者是影响了其他功能,这个在编程中比较关键。

4 回顾
每一次解决问题,都是一次微小的成长。不要解决问题就算了,可以重新回顾一下解决问题的思路,下一次碰到了,如何才可以更快的解决。如上述开头所说,这些技巧是很依赖经验和知识的。你想在所解决的将成为将来的垫脚石。

你可能感兴趣的:(思维方式)