矩陣乘法 求斐波那契數列

2021-10-09 07:05:34 字數 804 閱讀 5342

先簡單介紹一下矩陣乘法求斐波那契數列的原理

f(n) 是第n項的值。

f(1)= 1; f(2) =1;

f(n)= f(n-1) + (n-2)

下面的介紹是我從網上查到了,收益匪淺。

分兩步推導:

問題的求解就變成

二分法可用遞迴和非遞迴來求:

下面是**:

定義矩陣

struct matrix  

//定義2*2的矩陣 

; void mul(matrix& x,matrix& y)  

// 矩陣乘法 x = x*y

//下面這個函式是我從網上查到的 

matrix power(matrix x,long e)

if( e==1 )

return x;

tmp=power(x,e>>1);  

//x的e/2次方 

ans=mul(tmp,tmp);

if( e&1 )  

//如果e為奇數,還要再乘以x 

ans=mul(ans,x);

return ans; }

非遞迴**:

matrix result = };

matrix base =};

if(n&1) result = base;

n>>=1;

while(n)

n>>=1; }

<

斐波那契數列 矩陣乘法

f 1 1 f 2 1 f n f n 1 f n 2 n 2 且 n 為整數 題目描述 請你求出 f n mod 1000000007 的值。輸入輸出格式 輸入格式 第 1 行 乙個整數 n 輸出格式 第 1 行 f n mod 1000000007 的值 輸入輸出樣例 輸入樣例 1 5輸出樣例 ...

矩陣乘法 斐波那契數列II III IV

ii 求出斐波那契數列的第n項 1 n 2 31 模10000的值 iii 求出f n f n 2 f n 1 1模9973的值 iv 求出f n f n 2 f n 1 n 1模9973的值 f 1 f 2 1 ii 矩陣乘法,設矩陣 那麼顯然可以乘矩陣 得到矩陣 那麼得式子 a 即 a 1 同時...

矩陣 斐波那契數列

利用矩陣來求解斐波那契數列的有關問題是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 現在說說怎麼利用矩陣來求解斐波那契數列。我們可以先儲存...