矩陣快速冪(求斐波那契數列)

2021-09-27 03:07:27 字數 621 閱讀 5932

矩陣快速冪求斐波那契數列的模板

**

因為fib(n)至於最近的倆個序列有關(及fib(n-1)和fib(n-2)),所以我們儲存最近的那倆個就行了。

設f(n)表示乙個1*2的矩陣,f(n)=[fib(n),fib(n+1)],可以看成【a,b】–>【a+b,b】;

所以可以變成f(n)=f(n-1)*a; (a表示乙個二維矩陣) a[2][2]=,};然後就可以得到最終的表示式 f(n)=*a^n(表示矩陣a的n次方);

難點也就在於如何求矩陣a的n次方。這就需要結合快速冪的方法求矩陣的冪次。

#include#includeusing namespace std;

typedef long long ll;

const int mod=10000;

void mul(int f[2] ,int a[2][2])

void mulself(int a[2][2])

int main();

int a[2][2]=,};

while(n)

printf("%d\n",f[0]);

} return 0;

}

矩陣快速冪求斐波那契數列

求數a aa的n nn次冪,可以採用二分法進行快速計算,即 a n a cdot a n為偶數 a cdot a cdot a n為奇數 end right.an a n a a a cdot a cdot a cdot a cdots a a cdot a cdot a cdot a 2 cdot...

矩陣快速冪 斐波那契數列

time limit 1000 ms memory limit 128 mb 通過小l的不懈努力,他即將成為大神啦,他登上了大神專屬的頒獎臺。在頒獎台上,他即將領取代表著大神的無限榮譽的勳章。小l走上頒獎台後,在台上發現了乙個製作精美的盒子。榮譽勳章就在盒子裡面。小l發現這個盒子被上了鎖,在這個盒子...

矩陣快速冪 斐波那契數列

先來實現乙個矩陣相乘的函式吧。const int mod 10000 struct mat mat mat mul mat x,mat y 實現兩個矩陣相乘,返回的還是乙個矩陣。return res 其實和普通快速冪類似,只不過這裡需要得到的是乙個矩陣下面來實現乙個矩陣快速冪 int pow int...