矩陣快速冪(模板 例題)

2021-09-22 18:55:32 字數 1365 閱讀 7747

矩陣快速冪推導過程:

矩陣快速冪求解數列第n項的關鍵在於計算係數矩陣a。之後就是套模板了。

模板(求解斐波那契數列第n項):

#include

#include

#define ll long long

#define mod 2147493647

using namespace std;

struct mat

;mat operator*

(mat x, mat y)

}return ret;

}mat pow_mat

(mat a,ll n)

return ret;

}int

main()

;int t;

while(~

scanf

("%d"

,&t)

)return0;

}

例題:

題意:給出數列f

nf_n

fn​=2*fn−

2f_

fn−2​+fn−

1f_

fn−1​+n

4n^4

n4t組資料,每組給出數列的前兩項和乙個數n,求數列的第n項。

首先構造係數矩陣:

mat a=

;

此時,xn−

1x_

xn−1​=

;
x

nx_n

xn​=

;
滿足x

nx_n

xn​=axn−

1x_

xn−1​。

**:

#include

#include

#define ll long long

#define n 7

#define mod 2147493647

using namespace std;

struct mat

;mat operator*

(mat x, mat y)

}return ret;

}mat pow_mat

(mat a,ll n)

return ret;

}int

main()

; x0=

pow_mat

(a,n-2)

*x0;

printf

("%lld\n"

,x0.m[6]

[0])

;}}return0;

}

矩陣快速冪 例題 模板

觀察上式可以得出下面等價方程組 很明顯可以構造乙個矩陣 構造矩陣為 將左邊的矩陣乘n 1次 include using namespace std typedef long long llt const int cube size 3 矩陣大小 struct cube 單位矩陣 cube unitc...

矩陣快速冪模板 例題

矩陣快速冪這個演算法,理解起來很容易,但是我之前自己寫的 有bug,也是因為上課不聽課,對形參和實參沒理解,平常用的都是全域性變數,是不是實參影響不大,這次定義乙個結構體的矩陣,矩陣需要初始化為0,然後,因為形參和實參沒怎麼理解,導致輸出的答案差異很大,前提是矩陣快速冪,矩陣需要初始化陣列,並不會預...

矩陣快速冪模板 例題(快速入門)

本來早在乙個月前就應該把這給掌握的,硬是得等到卡題了,才想到來補知識 傳送門 矩陣快速冪基礎講解 單純的求某一矩陣的快速冪是沒有什麼意義的,主要是由於所求的遞推式的數比較大時,如果使用暴力遞推,必定會超時,這時矩陣快速冪的作用就完美體現了 根據個人碼風和編碼習慣,敲了乙份模板,如果覺得有用,大佬們不...