BASIC-17 / Tsinsen 1041 矩陣乘法(java)
問題描述
給定一個N階矩陣A,輸出A的M次冪(M是非負整數)
例如:
A =
1 2
3 4
A的2次冪
7 10
15 22
例如:
A =
1 2
3 4
A的2次冪
7 10
15 22
輸入格式
第一行是一個正整數N、M(1<=N<=30, 0<=M<=5),表示矩陣A的階數和要求的冪數
接下來N行,每行N個絕對值不超過10的非負整數,描述矩陣A的值
接下來N行,每行N個絕對值不超過10的非負整數,描述矩陣A的值
輸出格式
輸出共N行,每行N個整數,表示A的M次冪所對應的矩陣。相鄰的數之間用一個空格隔開
樣例輸入
2 2
1 2
3 4
1 2
3 4
樣例輸出
7 10
15 22
15 22
題目分析:題意明確,矩陣乘法
演算法分析:反思一下,矩陣乘法都會乘,但是通用公式呢,能信手拈來嗎,思路不清晰的儘早百度百科好好複習為上策。否則光一個乘法公式都需要慢慢推導是真的費時費力了。另外,題目中還有一個注意點,就是M是非負整數,矩陣的零次冪是單位陣,不能忘!
演算法設計:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int M = sc.nextInt();
long[][] a = new long[N][N];
long[][] b = new long[N][N];
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
b[i][j] = a[i][j] = sc.nextLong();
}
}
sc.close();
// 矩陣的0次冪為單位陣
if (M == 0) {
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
if (i == j)
System.out.print(1 + " ");
else
System.out.print(0 + " ");
}
System.out.println();
}
} else if (M == 1) { // 矩陣的1次冪為本身
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
System.out.print(a[i][j] + " ");
System.out.println();
}
}
} else {
for (int x = 1; x < M; x++) {
long[][] temp = new long[N][N];
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
long result = 0;
for (int k = 0; k < N; k++) {
result += a[i][k] * b[k][j]; // 矩陣乘法
}
temp[i][j] = result;
}
}
b = temp;
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
System.out.print(b[i][j] + " ");
}
System.out.println();
}
}
}
}
相關文章
- 矩陣乘法矩陣
- 理解矩陣乘法矩陣
- MKL庫矩陣乘法矩陣
- cuda 加速矩陣乘法矩陣
- 【矩陣乘法】Matrix Power Series矩陣
- #100. 矩陣乘法矩陣
- 【矩陣乘法】【快速冪】遞推矩陣
- OpenCL之矩陣乘法實現矩陣
- POJ 3613 Cow Relays 矩陣乘法Floyd+矩陣快速冪矩陣
- CUDA 矩陣乘法終極優化指南矩陣優化
- 斐波那契數列Ⅳ【矩陣乘法】矩陣
- torch中向量、矩陣乘法大總結矩陣
- [轉]如何理解矩陣乘法的規則矩陣
- bzoj3240: [Noi2013]矩陣遊戲(矩陣乘法+快速冪)矩陣遊戲
- 怎樣用python計算矩陣乘法?Python矩陣
- 計算機演算法:Strassen矩陣乘法計算機演算法矩陣
- 04 矩陣乘法與線性變換複合矩陣
- 矩陣乘法的運算量計算(華為OJ)矩陣
- 想學人工智慧,先從理解矩陣乘法開始人工智慧矩陣
- bzoj4547: Hdu5171 小奇的集合(矩陣乘法)矩陣
- UOJ 241. 【UR #16】破壞發射臺 [矩陣乘法]矩陣
- MPI矩陣向量乘法程式碼《並行程式設計導論》矩陣並行行程程式設計
- 線性代數 - 矩陣形式下的最小二乘法矩陣
- bzoj4887: [Tjoi2017]可樂(矩陣乘法+快速冪)矩陣
- JAVA列印有序矩陣Java矩陣
- 矩陣的乘法運算與css的3d變換(transform)矩陣CSS3DORM
- POJ3070 Fibonacci[矩陣乘法]【學習筆記】矩陣筆記
- 【線性變換/矩陣及乘法】- 圖解線性代數 03矩陣圖解
- 脈動陣列在二維矩陣乘法及卷積運算中的應用陣列矩陣卷積
- 生成螺旋矩陣(方陣、矩陣)矩陣
- 【矩陣基礎與維度分析】【公式細節推導】矩陣非線性最小二乘法泰勒展開矩陣公式
- 鄰接矩陣、度矩陣矩陣
- 巨大的矩陣(矩陣加速)矩陣
- 奇異矩陣,非奇異矩陣,偽逆矩陣矩陣
- 大模型終端部署新趨勢:硬體直接支援混合矩陣乘法大模型矩陣
- 矩陣矩陣
- 資料結構:陣列,稀疏矩陣,矩陣的壓縮。應用:矩陣的轉置,矩陣相乘資料結構陣列矩陣
- 3D圖形:矩陣的行列式,矩陣的逆、正交矩陣、齊次矩陣3D矩陣