遞迴程式設計的簡單理解

2022-04-28 16:45:12 字數 864 閱讀 9532

遞迴演算法:在函式或子過程的內部,直接或者間接地呼叫自己的演算法。 遞迴程式的基本步驟:

初始化演算法。遞迴程式通常需要乙個開始時使用的種子值(seed value)。要完成此任務,可以向函式傳遞引數,或者提供乙個入口函式, 這個函式是非遞迴的,但可以為遞迴計算設定種子值。(求解關係表示式)

檢查要處理的當前值是否已經與基線條件相匹配。如果匹配,則進行處理並返回值。(結束遞迴的條件)

使用更小的或更簡單的子問題(或多個子問題)來重新定義答案。

對子問題執行演算法。

將結果合併入答案的表示式。

返回結果。

自己寫的幾個遞迴的小例項,練習一下(php)

最經典的兔子問題: 斐波納契數列

有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?

關係式為 a(n) = a(n-1)+a(n-2)

遞迴法求解為

function

tuzi($n)

return

(tuzi($n-

1)+tuzi($n-

2));

}求整數的和 (1~100)

function

add_num($n)

return$n+

add_num($n-

1);}求陣列中最大值問題(這個跟迴圈求解基本一樣)

function

array_max(

$arr,$n

,$max)if

($arr[$n

]>

$max

)return

array_max(

$arr,$n

-1,$max);}

簡單理解遞迴

遞迴 現在的一些高階語言具有著可以在函式內部呼叫函式自身的功能,在一些場合中可以完成簡化 實現!下面簡單的講一下自己對於遞迴的理解!遞迴的實現一般分為三個步驟 在 實現的時候一般需要按照這個步驟實現。明確遞迴函式的作用 遞迴的終止條件 找到關係式,讓其最終可以達到遞迴的終止條件!下面詳細講解一下需要...

遞迴簡單理解

一 遞迴的概念 個人理解遞迴就是方法自己呼叫自己,每次呼叫傳入不同的變數,遞迴有助於解決複雜的問題,同時可以讓 變得更簡潔 二 遞迴的規則 例項 迷宮問題 找出小球從左上角到右下角的路線 底層原理,用二位陣列 思路分析 三 實現package com.atguigu.recursion public...

對遞迴的簡單理解

今天一小夥伴寫了乙個遞迴,echo可以輸出要取的值,return的卻總是null,寫了乙個簡單的測試復原一下問題。function test i echo i return i a test 30 var dump a 結果如下 261014182226 int 26 思路看上去很簡單,i 3就遞迴...