C 實現矩陣的m次方

2021-07-31 16:45:23 字數 786 閱讀 5361

矩陣乘法

問題描述

給定乙個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 21 2

3 4樣例輸出

7 10

15 22

#include #include using namespace std;

#define max 35

int main()

int i;

int t;

for(t = 0; t < m-1; ++t)

for(i = 0; i < n; ++i)

for(int j = 0; j < n; ++j)

a[i][j] = res[i][j];

} for(i = 0; i < n; ++i){

for(int j = 0; j < n; ++j)

cout << (m == 0 ? (i == j ? 1 : 0) : res[i][j] ) << ' ';

cout<

矩陣的m次方

矩陣乘法 問題描述 給定乙個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的值 輸出格式 輸出共...

求m的n次方

不考慮高精度,一般有三種做法 最笨的做法是把m連乘n 1次,這個就不寫了。第二種做法很好理解,是遞迴的快速冪,當n是偶數時,分解成兩個n 2次方然後再乘起來,n是奇數的時候分解成兩個n 2次方乘起來再多乘乙個m 第三種做法有點難得理解,是將n化成二進位制,然後把1的那些數字乘起來 經過測試,n很大的...

求a的b次方 a的b次方對m取模

如計算2 13,則傳統做法需要進行12次乘法,但是可以優化 把2 2的結果儲存起來看看,是不是成了 4 4 4 4 4 4 2 再把4 4的結果儲存起來 16 16 16 2 一共5次運算,分別是2 2 4 4和16 16 16 2 這樣分析,我們演算法因該是只需要計算一半都不到的乘法了。為了講清這...