先簡單介紹一下矩陣乘法求斐波那契數列的原理
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 現在說說怎麼利用矩陣來求解斐波那契數列。我們可以先儲存...