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