讀《怎樣解題:數學思維的新方法》有感

看程序員應該讀哪些書,找到這本書,便讀了一下。
這本書是作者作爲一名數學家講關於如何解數學題的,但是用來解決編程問題,也是相當有幫助的。

“好的思路來源於過去的經驗和知識”–波利亞
個人感覺這句話是這本書的假設前提, 想想看,一個只有小學水平數學能力,能解決大學中的數學問題嗎? 這個靠什麼技巧都是彌補不了的。 但是有人爲什麼面對的是小學水平的難題,或者稍微更難的問題時,他已經具備了相應的知識,爲什麼還是解決不了呢?這本書就是幫助你解決這樣的問題的,通過提問的方式來引導自己的思維。
當然個人還是要在平時,注意積累經驗和知識,這個是核心。

我們要具備這樣的心態,面對問題,不能守株待兔,等待靈感自己到來,而是主動出擊,把想法逼出來,記住,最糟糕的情況不是有錯誤的想法,而是沒有任何想法。

面對問題,是有一定流程的。接下來就是說說書中的流程(個人看法,不一定準)

理解題目
那問題來了,怎麼纔算理解題目?
那就是拆分,面對複雜的事物,拆分它是很好的行爲,作者是把它拆分 未知量,已知數據,條件(在編程中理解爲約束條件我覺得更加容易理解)。記住,一定要用語言描述出這些因素,不能光是感覺,所以說,有時候,你光是把問題描述出來,就已經解決問題了,不過不是每次都這麼幸運。
說說一些比較無關的話,大腦是不擅長記下所有的事情的,尤其是細節,它的運行方式是記下重點,然後由重點想到其他重點,像是網狀結構,一個點聯想的另一個點。 就像眼睛所看的,眼睛看到的不是所有的景象,其實是有一部分是大腦通過想象來補充的。所以剛開始攝取信息的時候,要有意思的捨棄某些無關的信息,抓住重點。但那些又是重點呢?上面這些因素是最有可能是問題的要點,當然也許有其他因素也要考慮,但在考慮上面的因素再考慮其他因素比較合適。

找到已知數據與未知量之間的關係?如果找不到,你也許不能不去考慮輔助題目?
在這步驟中,是這本書中技巧最多,也是很核心的一步。

是否知道以前有一道和它類似的題目? 比如有相似的條件或者是未知量。
如果有一道和它緊密相關的題目,也許你就可以解決了。 ‘

沒有的話,就要考慮變換題目了。
普通化,特殊化,使用類比,放棄一部分條件,分解和重組,倒着乾等技巧。
如果你運氣不好,如果都沒成功,那你就瞎試吧,說不定運氣好,碰巧讓你發現解決的辦法了,這種情況我就碰到很多次,不過這終究是無奈之舉,最後再用。
這些我就不具體講了,關鍵是通過變化條件,未知量,數據這三個因素來達到變化題目激發思考的目的。

3.執行方案
這個在數學問題上是需要驗證的,編程的話,只需要跑一跑就知道了,但是要注意的是這麼做會不會存在漏洞,或者是影響了其他功能,這個在編程中比較關鍵。

4 回顧
每一次解決問題,都是一次微小的成長。不要解決問題就算了,可以重新回顧一下解決問題的思路,下一次碰到了,如何纔可以更快的解決。如上述開頭所說,這些技巧是很依賴經驗和知識的。你想在所解決的將成爲將來的墊腳石。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章