矩陣快速冪

2021-08-20 05:30:30 字數 621 閱讀 4621

大半年後繼續學習矩陣快速冪,矩陣快速冪有兩大難點,一是找遞推式,二是找轉移矩陣。今天重點學習了一下如何找轉移矩陣,使我想到了《常微分方程》中,把高階微分方程轉化為方程組需要尋找係數矩陣。這兩個東西我的理解都比較淺薄,就重點說一下怎麼找轉移矩陣吧。

這裡就是個矩陣乘法等式左邊:1*f(n-1)+1*f(n-2)=f(n);1*f(n-1)+0*f(n-2)=f(n-1);

這裡還是說一下構建矩陣遞推的大致套路,一般an與a(n-1)都是按照原始遞推式來構建的,當然可以先猜乙個an,主要是利用矩陣乘法湊出矩陣t,第一行一般就是遞推式,後面的行就是不需要的項就讓與其的相乘係數為0。矩陣t就叫做轉移矩陣(一定要是常數矩陣),它能把a(n-1)轉移到a(n);然後這就是個等比數列,直接寫出通項:

例1.f(n)=a*f(n-1)+b*f(n-2)+c;(a,b,c是常數)

快速冪(矩陣快速冪)

求 3 0 3 1 3 n mod 1000000007 input 輸入乙個數n 0 n 10 9 output 輸出 計算結果 sample input 3sample output 40 分析 利用等比數列的求和公式得所求和是 3 n 1 1 2,如果暴力求3 n 1 會超時,這裡引入快速冪來...

快速冪 矩陣快速冪

快速冪 正常情況下求乙個數的冪時間複雜度為o n 而快速冪能把時間複雜度降到o logn 舉個例子 求5的13次方 思想首先把13化為二進位制 1101,即13 1101 8 1 4 1 2 0 1 1 即5 13 58 1 54 1 52 0 5 1 15 5 8 1 5 4 1 5 2 0 5 ...

快速冪 矩陣快速冪

快速冪 我們求a ba b ab最直接的方法就是把a乘b次這樣的話複雜度就是o n o n o n 但是在比賽時面對1e9的資料時還是會輕鬆超時的,此時就需要一種更快的乘法來幫助我們 我們把b拆成二進位制的形式得到a ba b ab a 10.01 a a1 0.01此時對b分解得到的序列10.01...