递归入门
分享一下我老師大神的人工智能教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
寫在前面:
對于強大的遞歸。要想做到靈活運用,是需要花時間進行練習并總結。往往遞歸學習的入門也是難度也比較大,常常會處于看得明,卻寫不出的"尷尬"情況。
本人也是一名編程菜鳥,也常處于尷尬中。正因遞歸的學習需要一個過程,所以萌生一個想法,對于每一次的遞歸學習都寫篇博文總結,與大家分享,共同進步!
在此推薦一本學習遞歸較好的的入門書:《程序設計抽象思想:C語言描述》?。本文章也引用了書中的對遞歸要點的理解和描述。
如果對遞歸學習此系列的文章有任何的建議或批評,歡迎指出!
*文章練習會不定期進行更新
遞歸的簡單介紹和要點梳理
遞歸維基百科
遞歸百度百科
遞歸互動百科
遞歸的定義:
將一個大的問題分解成比較小的、有著相同形式的問題。
遞歸是一種強有力的思想。在計算機科學的學習中,一個重要的必須學習的概念是遞歸。遞歸是一種編程策略,它把一個大的問題分解成具有相同形式的簡單問題。
遞歸示例:(可以按照以下順序逐步練習遞歸)
- 階乘函數
- 斐波那契函數
- 回文字符串
- 字符串翻轉
- 折半查找
- 判斷一個數是偶數還是奇數
- 漢諾塔
- poj 放蘋果
使用遞歸的必需條件
一般對遞歸思想的介紹,都是說將大問題分解為一個個小問題。本人覺得,帶著 “如何將問題規模縮少”的思想 比 “將大問題分解為一個個小問題” 的思想要更好地編寫遞歸程序。
遞歸跳躍的信任
當嘗試理解遞歸程序時,必須能夠拋開底層的細節,將注意力集中在單個計算層次上。在這個層次上,只要一個遞歸調用的參數在某些方面能比前一個參數更簡單,那么就可以認為任何遞歸調用都能夠自動地得到正確的答案。這種心理策略——假設任何更簡單的遞歸都能正確地實現——叫做對遞歸跳躍的信任。在實際應用中,學習應用這個策略是使用遞歸的基礎。
以遞歸的方式思考
保持整體觀:遞歸思維要求整體考慮。在遞歸領域中,只考慮局部是理解的敵人,將會妨礙對遞歸的理解。為了保持這種整體觀,必須習慣于采用對遞歸跳躍的信任。無論是在寫遞歸程序或是理解遞歸程序,都必須達到忽視單個遞歸調用細節的地步。只要選擇了正確的分解,確認了相應的簡單情景,并且正確地實現了策略,那么這些遞歸調用能夠自己運行,不必過多考慮。
避免常見的錯誤
在示例練習中會盡量以上述幾點為基礎去思考問題的解法
給我老師的人工智能教程打call!http://blog.csdn.net/jiangjunshow
總結
- 上一篇: 【有手就行】电脑蓝屏恶搞(附带一键复原方
- 下一篇: 如何去追女生,看了你就成功了一半