資訊內(nèi)容
遞歸算法在scratch學(xué)習(xí)中的運(yùn)用
遞歸算法應(yīng)用
? ? ?學(xué)習(xí)scratch編程的同學(xué),到了進(jìn)階課程階段會(huì)接觸到遞歸的概念。
? ? ?但是很多人很難理解什么是遞歸。
? ? 因?yàn)檎H说乃季S,一般是迭代(iteration),比如人都是先學(xué)習(xí)加減法,再學(xué)習(xí)乘除法,最后學(xué)習(xí)微積分。歸納法其實(shí)就是一種迭代,從一個(gè)簡單的起點(diǎn),推廣到一般情況。
? ?而遞歸(recursion),則是一種反人類的逆向思維,會(huì)讓程序變得非常之簡潔。
遞歸算法簡介遞歸算法是一種直接或者間接調(diào)用自身函數(shù)或者方法的算法,其實(shí)質(zhì)是把問題分解成規(guī)??s小的同類問題的子問題,然后遞歸調(diào)用方法來表示問題的解。遞歸算法對(duì)解決一大類問題很有效,它可以使算法簡潔和易于理解。
同學(xué)們小時(shí)候經(jīng)常念的:從前有座山,山里有座廟,廟里有個(gè)老和尚給小和尚講故事!故事是什么呢?“從前有座山,山里有座廟,廟里有個(gè)老和尚給小和尚講故事!故事是什么呢?
如此循環(huán)往復(fù),是不是像極了scratch里的重復(fù)執(zhí)行模塊?
遞歸算法在scratch里的實(shí)際運(yùn)用
? ?
?其實(shí)重復(fù)執(zhí)行除了可以通過循環(huán)結(jié)構(gòu)實(shí)現(xiàn)外,還可以通過另一個(gè)強(qiáng)大的技術(shù)實(shí)現(xiàn),那就是遞歸。
以畫正三角形為例,通常我們是這樣畫的:

繪制三角形需要循環(huán)3次
如果用遞歸算法怎么做?
這里需要運(yùn)用到scratch里的更多模塊
通過更多模塊,我們創(chuàng)建新的功能塊,給新功能塊命名,并且可以自定義新功能塊的含義。
我們將循環(huán)3次而成的正三角形重新打包,定義為新的功能塊,最終程序改為:
同學(xué)們理解了嗎?
遞歸思想的運(yùn)用非常之廣泛,來鳳凰機(jī)器人一起探索編程的奧秘吧!
遞歸算法小練習(xí)讓我們加點(diǎn)難度吧?下圖怎么用遞歸算法畫出來?
聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過郵件及時(shí)和我們聯(lián)系刪除
