矩陣快速冪 學習筆記

2021-09-25 23:17:27 字數 1034 閱讀 2298

首先,我們需要了解矩陣。矩陣說白了就是一堆數,排成長方形的形狀。

然後就是矩陣的運算,加減都很簡單,這裡談一下乘法:

所以矩陣相乘,一定是有其中乙個矩陣的行等於另乙個矩陣的列的。

矩陣快速冪則和一般的快速冪的操作是一樣的,只是把乘法變成了矩陣乘而已,就像過載那樣。

這裡還要說一下單位矩陣:

對於n ∗m

n*mn∗

m的矩陣,它的單位矩陣大小為m∗m

m*mm∗

m,對於m∗n

m*nm∗

n的矩陣,它的單位矩陣大小為n∗n

n*nn∗

n。也就是說單位矩陣都是正方形的,這是因為只有正方形的矩陣能保證結果和前乙個矩陣形狀相同。

單位矩陣的元素非0即1,從左上角到右下角的對角線上元素皆為1,其他皆為0。

單位矩陣的意義就是它相當於普通乘法裡面的1,和任何數乘1都等於它本身那樣,任何矩陣乘單位矩陣都等於原矩陣。

模板:洛谷p3390

#include

#include

using

namespace std;

#define n 105

#define ll long long

#define mod 1000000007

int n;

ll k;

struct node

;node a,e/*單位矩陣*/

;node mul

(node x,node y)

node pow

(node x,ll y)

return ans;

}int

main()

node ans=

pow(a,k)

;for

(int i=

1;i<=n;i++

)}

矩陣快速冪學習筆記

其實會用快速冪已經有好長一陣子了,但是一直沒有寫一篇入門快速冪的筆記。據說,在遞推式優化上具有神奇的效果 效率很高 兩矩陣相乘,樸素演算法的複雜度是o n 3 如果求一次矩陣的m次冪,按樸素的寫法就是o n 3 m 既然是求冪,不免想到快速冪取模的演算法,這裡有快速冪取模的介紹,a b m 的複雜度...

學習筆記 矩陣快速冪

前置芝士 矩陣 矩陣乘法 這兩個芝士並不是很難 重點可能在應用方面 首先介紹我所理解的廣義的矩陣乘法 現在我們手上有兩個矩陣 a 和 b 我們期望得到乙個答案矩陣 ans 其中 ans i j ans i j a i k b i k 其中 代一種運算 如 min max 等等 都可以用矩陣快速冪把遞...

矩陣快速冪 學習筆記

據說,矩陣快速冪在遞推式優化上相當神奇,而且效率很高。兩矩陣相乘,樸素演算法的複雜度是o n 3 如果求一次矩陣的m次冪,按樸素的寫法就是o n 3 m 既然是求冪,不免想到快速冪取模的演算法,這裡有快速冪取模的介紹,a b m 的複雜度可以降到o logb 如果矩陣相乘是不是也可以實現o n 3 ...