矩陣相乘or快速乘方

2021-10-04 19:47:22 字數 1694 閱讀 7307

矩陣性質:

共軛複數:兩個實部相等,虛部互為相反數的複數互為共軛複數,矩陣共軛同理

矩陣乘法舉例:

前置知識:矩陣 a×b

思路:三迴圈:矩陣1的行 -> 矩陣2的列 -> 矩陣1的列 / 矩陣2的行(最先變的放內層,最後變的放外層)

fo

(i,0

,n)fo

(j,0

,p)

**:

#include

#define ll long long

#define fo(i,a,b) for(int i=a;iusing

namespace std;

int a[

100]

[100

],b[

100]

[100];

intmain()

return0;

}

題目:矩陣乘法問題描述

給定乙個n階矩陣a,輸出a的m次冪(m是非負整數)

例如:a =

1 23 4

a的2次冪

7 10

15 22

輸入格式:

第一行是乙個正整數n、m(1<=n<=30, 0<=m<=5),表示矩陣a的階數和要求的冪數,接下來n行,每行n個絕對值不超過10的非負整數,描述矩陣a的值

輸出格式:

輸出共n行,每行n個整數,表示a的m次冪所對應的矩陣。相鄰的數之間用乙個空格隔開

樣例輸入

2 2

1 23 4

樣例輸出

7 10

15 22

思路:快速冪+矩陣乘法

**:

#include

#define fo(i,a,b) for(int i=a;i#define max 30

using

namespace std;

int n,m0;

struct mat

}t1;

//矩陣定義

mat mul

(mat a,mat b,

int size)

//矩陣乘法

mat fastm

(mat a,

int k)

return res;

}//快速冪

void

init()

intmain()

}

演算法訓練 矩陣乘方

問題描述 給定乙個矩陣a,乙個非負整數b和乙個正整數m,求a的b次方除m的餘數。其中乙個nxn的矩陣除m的餘數得到的仍是乙個nxn的矩陣,這個矩陣的每乙個元素是原矩陣對應位置上的數除m的餘數。要計算這個問題,可以將a連乘b次,每次都對m求餘,但這種方法特別慢,當b較大時無法使用。下面給出一種較快的演...

演算法訓練 矩陣乘方

問題描述 給定乙個矩陣a,乙個非負整數b和乙個正整數m,求a的b次方除m的餘數。其中乙個nxn的矩陣除m的餘數得到的仍是乙個nxn的矩陣,這個矩陣的每乙個元素是原矩陣對應位置上的數除m的餘數。要計算這個問題,可以將a連乘b次,每次都對m求餘,但這種方法特別慢,當b較大時無法使用。下面給出一種較快的演...

演算法提高 矩陣乘方

問題描述 給定乙個矩陣a,乙個非負整數b和乙個正整數m,求a的b次方除m的餘數。其中乙個nxn的矩陣除m的餘數得到的仍是乙個nxn的矩陣,這個矩陣的每乙個元素是原矩陣對應位置上的數除m的餘數。要計算這個問題,可以將a連乘b次,每次都對m求餘,但這種方法特別慢,當b較大時無法使用。下面給出一種較快的演...