遞歸算法實(shí)例及程序?qū)崿F(xiàn)_第1頁(yè)
遞歸算法實(shí)例及程序?qū)崿F(xiàn)_第2頁(yè)
遞歸算法實(shí)例及程序?qū)崿F(xiàn)_第3頁(yè)
遞歸算法實(shí)例及程序?qū)崿F(xiàn)_第4頁(yè)
遞歸算法實(shí)例及程序?qū)崿F(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

遞歸算法實(shí)例及程序?qū)崿F(xiàn)從前有座山,山里有座廟,廟里有個(gè)老和尚,給小和尚講故事,故事是什么呢?從前有座山,山里有座廟,廟里有個(gè)老和尚,給小和尚講故事,故事是什么呢?從前有座山,山里有座廟,廟里有個(gè)老和尚,給小和尚講故事,故事是什么呢?老和尚的故事…數(shù)果子問題233142?數(shù)果子問題遞歸

將要處理的問題劃分為一個(gè)或多個(gè)子問題,而處理子問題的方法與處理原問題的方法是一樣的,這樣的處理方法稱為遞歸。案例一、到底幾歲了?我比左邊的2倍小2歲我比左邊的2倍小2歲我比左邊的2倍小2歲我比左邊的2倍小2歲我比左邊的2倍小2歲我比左邊的2倍小2歲我3歲案例一、到底幾歲了?算法規(guī)則:1、第1個(gè)人的年齡=3\2、第N個(gè)人的年齡=第N-1人的年齡*2-2求第N個(gè)人的年齡:if是第1個(gè)人then年齡=3 else年齡=前一人年齡*2-2 endif案例一、到底幾歲了?VB代碼:FunctionAge(nAsInteger)AsIntegerifn=1thenage=3elseage=age(n-1)*2-2endifEndFunction求第N個(gè)人的年齡if是第一個(gè)人then

年齡=3else

年齡=前一人年齡*2-2endif案例二、斐波那契數(shù)列問題斐波納契數(shù)列,又稱黃金分割數(shù)列,指的是這樣一個(gè)數(shù)列:1、1、2、3、5、8、13、21、34、65……這個(gè)數(shù)列從第三項(xiàng)開始,每一項(xiàng)都等于前兩項(xiàng)之和。求:數(shù)列中的第N項(xiàng)是幾?算法規(guī)則:1、最初兩項(xiàng)值為12、第N項(xiàng)的值是它之前兩項(xiàng)之和求第N個(gè)斐波納切數(shù)if是最初兩項(xiàng)then斐波納切數(shù)=1 else斐波納切數(shù)=前兩個(gè)斐波納切數(shù)之endif案例二、斐波那契數(shù)列問題求第N個(gè)斐波納切數(shù)if是最初兩項(xiàng)then斐波納切數(shù)=1 else斐波納切數(shù)=前兩個(gè)斐波納切數(shù)之和endifFunctionFib(nasInteger)asIntegerIfthenFib=ElseFib=EndifEndFunctionn<3Fib(n-2)+Fib(n-1)11、1、2、3、5、8、13、21、34、65……案例三、求最大公約數(shù)

早在公元前300年左右,歐幾里得就在他的著作《幾何原本》中給出了高效的解法——輾轉(zhuǎn)相除法。輾轉(zhuǎn)相除法的方法是用較大的數(shù)X除以較小的數(shù)Y,得到余數(shù)Z;

如果余數(shù)為0,則較小數(shù)Y就是兩者的最大公約數(shù)。例如:27和9的最大公約數(shù)就是9。如果余數(shù)不為0,則較小數(shù)Y與余數(shù)Z的最大公約數(shù)就是X與Y的的最大公約數(shù)。例如:33和9的最大公約數(shù)就是9與6的最大公約數(shù)。案例三、求最大公約數(shù)求X與Y的公約數(shù):Z是X除Y得到的余數(shù)IfZ為0then

公約數(shù)=Else

公約數(shù)=的公約數(shù)EndifFunctionGYS(xasInteger,yasInteger)asIntegerDimzasIntegerz=IfZ=0thenGYS=ElseGYS=EndifEndFunctionXmodYYGYS(Y,Z)Y和ZY遞歸算法小結(jié)在程序中,遞歸算法表現(xiàn)為函數(shù)在運(yùn)行過程中調(diào)用了自己。每一次遞歸調(diào)用,在處理問題的規(guī)模上都有所縮小,在問題的規(guī)模極小時(shí),必須能給出直接的解答。求年齡:FunctionAge(nAsInteger)AsIntegerifn=1thenage=3elseage=age(n-1)*2-2endifEndFunction求斐波那契數(shù):FunctionFib(nasInteger)asIntegerIfn<3thenFib=1ElseFib=Fib(n-2)+Fib(n-1)EndifEndFunction從前有座山,山里有座廟,廟里有個(gè)老和尚,給小和尚講故事,故事是什么呢?從前有座山,山里有座廟,廟里有個(gè)老和尚,給小和尚講故事,故事是什么呢?從前有座山,山里有座廟,廟里有個(gè)老和尚,給小和尚講故事,故事是什么呢?再看老和尚的故事…這個(gè)過程算不算是遞歸?怎么改才能算是遞歸?拓展練習(xí):求n!n!=1×2×3×4×……×nn!=(n-1)!×n1!=1拓展練習(xí):惡魔與農(nóng)夫有一位農(nóng)夫不滿于自己的貧困。一天,他正在抱怨上天的不公平,一個(gè)惡魔出現(xiàn)在他的眼前,他對(duì)農(nóng)夫說:“

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論