斐波那契數列的矩陣分治求法java實現

2021-06-21 17:13:19 字數 504 閱讀 9360

平時一般求fibonacci數列都是用遞迴求的,其實還可以利用矩陣的冪求,如果遞迴時間複雜度是指數的(2^n),而矩陣分治來求是logn的。

為求a的n次冪,使用了分治法,複雜度為o(log(n))。這個結論可以用數學歸納法證明。

直接上**:

package edu.pku.ss.hlj;

public class matrix_n

system.out.println();

} system.out.println("斐波那契數列的fn值為:" + temp[0][1]);

} public static void init(int n)

public static int matrixmulti(int m, int n)

}} return temp;

} public static int pow(int n) else else

} }}

斐波那契數列求法

矩陣快速冪 模擬過程 眾所周知 斐波那契數列的定義是f n 1 f n f n 1 我們有兩種方式來實現 乙個是遞迴,乙個是動態規劃 int dfs int n int dfs03 int n return vec i 1 經典做法只要數一大就會超時,我們可以用矩陣快速冪進行優化,能將時間複雜度降到...

斐波那契數列 優化矩陣求法例項

一 遞迴 遞迴是最慢的會發生重複計算,時間複雜度成指數級。複製 如下 long long fac int n 二 迴圈 利用臨時變數來儲存中間的計算過程,加快運算。複製 如下 long long fac int n return b 三 矩陣乘法 空間換時間 減少乘法,取模運算 數列的遞推公式為 f...

矩陣 斐波那契數列

利用矩陣來求解斐波那契數列的有關問題是acm題中乙個比較常見的題型。例 nyoj 148 斐波那契數列2 有關斐波那契樹列的規律詳見這裡。1 對於n 1,都有f n 與f n 1 互質。2 f n f i f n i 1 f i 1 f n i 現在說說怎麼利用矩陣來求解斐波那契數列。我們可以先儲存...