矩陣乘法
問題描述給定乙個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 這樣分析,我們演算法因該是只需要計算一半都不到的乘法了。為了講清這...