演算法之 遞迴

2021-10-07 01:24:14 字數 2173 閱讀 2827

--------遞迴在程式語言中簡單的理解是:方法自己呼叫自己

描敘遞迴就是自己呼叫自己,不過需要注意的地方,需要給定跳出條件

**示例

/**

* 1、簡單遞迴

*/public class test1

public static void fa(int i)

system.out.println(i);

fa(i-1);}}

描敘

什麼是三角數字

n個三角數字是 由 1+2+3…+n 所得值計算乙個典型的三角數字。

下面通過代 計算 1+2+3…+n 所得值為多少

**示例

package recursion;

/** * 2、三角數字遞迴

* * 首先大家應該知道什麼是三角數字,三角數字的定義就是:

* 滴n個三角數字是 由 1+。。。+n所得。

* ........

* 例如:

* 1 的三角數字是1

* 2 的三角數字是 1+2 =3

* 3 的三角數字是 1 + 2 + 3 = 6

* 4 的三角數字是 1 + 2 + 3 + 4 = 10

* ..................................

* 公式= n= n+( n-1)

*/public class test2

/*** @param i

*/public static int fa(int i) else }}

描敘

斐波那契數列就是典型的樹列遞迴, 又名兔子數列 ,指的是這樣乙個數列:0,1、1、2、3、5、8、13、21、34、……

斐波那契數列(fibonacci sequence),又稱**分割數列、因數學家列昂納多·斐波那契(leonardoda fibonacci)以兔子繁殖為例子而引入,故又稱為「兔子數列」,指的是這樣乙個數列:1、1、2、3、5、8、13、21、34、……在數學上,斐波那契數列以如下被以遞推的方法定義:f(1)=1,f(2)=1, f(n)=f(n - 1)+f(n - 2)(n ≥ 3,n ∈ n*)在現代物理、準晶體結構、化學等領域,斐波納契數列都有直接的應用,為此,美國數學會從 1963 年起出版了以《斐波納契數列季刊》為名的乙份數學雜誌,用於專門刊載這方面的研究成果。

**示例

package recursion;

/** * 3、fibonacci 樹列遞迴 (斐波那契數列 = 兔子數列),指的是這樣乙個數列:0,1、1、2、3、5、8、13、21、34、……在數學上,斐波納契數列以如下被以遞迴的方法定義:f(1)=1,f(2)=1, f(n)=f(n-1)+f(n-2)(n>=2,n∈n*)。

* * 兔子問題,已知: 有一對剛出生的兔子,兔子從出生後的第三個月起開始每月生出一對小兔子,生成的小兔子第三個月起也開始每月生小兔子,假如兔子不會死,問20個月後兔子總數?

* * 第一月 1 (1)

* 第二月 1

* 第三月 2 一月生 1 對( 1+ 1 = 2) --> 生出1對

* 第四月 3 一月生 1 對( 2+ 1 = 3) --> 生出1對

* 第五月 5 一月生 1 對,三月生 1 對 ( 3 + 1+ 1 = 3) --> 生出2對

* 第六月 8 一月生 1 對,三月生 1 對,四月生 1 對 ( 5+1+1+1 = 8) --> 生出3對

* 第七月 13 一月生 1 對,三月生 1 對,四月生 1 對,五月生 2對 ( 8+ 1+1+1 +2 = 13) --> 生出5對

* * 公式: 當前月數量 = 上1月 + 上2月 , 出生數量= 上2月

* * f0 = 0; f1 = 1; fn = fn-1 + fn-2

*/ public class test3

/*** 使用遞迴

*/public static int fib(int n) else

}/**

* 使用迴圈

*/public static void rabbit() }}

演算法之遞迴

自從學了c語言,遞迴不得解。自淺學習演算法,遞迴得已解。很多書上都這麼寫的,遞迴 就是間接呼叫自己或直接呼叫自己的過程叫遞迴。話的確沒錯,初見還是較難理解,所以一般會給乙個斐波那契數列什麼的作為經典案例,不得不說我當初看的時候四個字 頭皮發麻 後來慢慢接觸多了,也不覺得如何。所謂遞迴 就是呼叫自己,...

演算法之遞迴

什麼是遞迴?遞迴是一種演算法思想。從字面上看,遞迴包含兩層含義,傳遞和回歸。現實中有很多問題,只是傳遞而不用回歸。比如說,軍訓時,每天的一項訓練 報數 報數從頭到尾,依次傳遞,到最後乙個人停止,這時候軍官就知道了總體人數是多少,有沒有少人。假如,隊伍中有人想知道自己是幾號,怎麼辦呢?問下旁邊的人,如...

python演算法之遞迴演算法

coding utf 8 import numpy as np 遞迴演算法 i 0 def my recursion list,n global i try if list i n 基線條件 return i,i 1 else 遞迴條件 i 1 return my recursion list,n ...