PHP 遞迴和遞推思想

2021-07-24 23:02:50 字數 1326 閱讀 6272

遞迴思想的乙個基本形式是在乙個函式中,有至少一條語句,又會去呼叫該函式自身。(求n!問題用遞迴;楊輝三角問題用過遞迴…)

<?php 

funtion digui($n)

return digui($n-1)*$n;

}$a=6;

echo

"的階乘為:!=".digui($a);

結果為:

遞迴思想總結:

為了解決乙個「大」問題,根據現實邏輯,該問題可以通過比它小一級的同類問題的答案得到。小一級的問題又可以根據更小一級的問題的答案得到。以此類推,直到「最小一級問題」的答案是乙個已經的。

遞迴思想圖例:

遞推思想和遞迴思想很相似,都是需要知道「最小一級問題」的答案。

我們先來看遞推思想圖例:

區別:

對比圖例後我們可以發現遞迴和遞推是有所差異的,遞推的整體思想是從小到大,而遞迴的整體思想是從大到小,再從小回到大。簡單說,遞推是更新變數的舊值,遞迴是在函式中呼叫函式自身。

舉例: 求斐波那契數列的第n項的值(遞推最經典的問題)

斐波那契數列的規律:1, 1, 2, 3, 5, 8, 13, 21…(最前的兩個數都為1,從第3位開始,後面每位數為前兩位數的和)

<?php 

function

fbnq

($n)

return

$result;

}$a=fbnq(7);//求斐波那契數列第7個數

echo

"斐波那契數列第7項為:".$a;

結果:

很多問題,遞迴和遞推都能解決。

有些問題只能用遞迴。

如果兩種方法都能解決,推薦使用遞推,遞推的效率高。

遞迴和遞推

遞迴的概念 乙個函式 過程 概念或資料結構,如果在其定義或說明內部直接或間接地出現有其本身的引用,或者是為了描述問題的某一狀態,必須用到它的上一狀態,而描述上一狀態,又必須用到它的上一狀態 這種用自己來定義的方法,稱之為遞迴或者遞迴定義。在程式設計中,過程或函式直接或者間接呼叫自己,就稱為遞迴呼叫 ...

遞推和遞迴

貪心的思想可以用一句話來歸納,每步取優 很好理解,假設你的程式要走i 1 n共n步,那麼保證你的第i步走出的是當前這一步的最優值。這樣的解題方法叫做貪心演算法。可見貪心演算法並不是乙個全面的列舉方法而是若干結果中的一種,僅僅一種而已。但這種演算法是不是最優解它就不能完全保證了。一般每個可以使用遞迴演...

遞推和遞迴

一 遞推演算法基本思想 遞推演算法是一種理性思維模式的代表,其根據已有的資料和關係,逐步推導而得到結果。遞推演算法的執行過程如下 1 根據已有的 結果和關係,求解中間結果 2 判定是否達到要求,如果沒有達到,則繼續根據已知結果和關係求解中間結果 如果滿足要求,則表示尋找到乙個正確的答案。遞推演算法往...