POJ3213--矩阵乘法 java代码示例
时间: 2024-11-24 15:12:37 浏览: 13
POJ 3213 题目是一个关于矩阵乘法的经典计算机科学问题。矩阵乘法通常是线性代数的基础操作,给定两个矩阵 A 和 B,你需要计算它们的乘积 C = A * B,其中每个元素 C[i][j] 是对应位置上 A 的行向量与 B 的列向量的点积。
以下是一个简单的 Java 代码示例,使用嵌套循环来实现矩阵乘法:
```java
import java.util.Scanner;
public class MatrixMultiplication {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 输入矩阵的维度
System.out.println("Enter the dimensions of matrix A (m x n):");
int m = scanner.nextInt();
int n = scanner.nextInt();
// 创建矩阵 A 和 B
int[][] matrixA = new int[m][n];
int[][] matrixB = new int[n][n];
// 读取矩阵 A 的元素
System.out.println("Enter elements of matrix A:");
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
matrixA[i][j] = scanner.nextInt();
}
}
// 读取矩阵 B 的元素(假设输入的矩阵都是方阵,大小为 n x n)
System.out.println("Enter elements of matrix B:");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
matrixB[i][j] = scanner.nextInt();
}
}
// 矩阵乘法
int[][] result = new int[m][n]; // 结果矩阵
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
for (int k = 0; k < n; k++) { // 每次循环k用于遍历B的列
result[i][j] += matrixA[i][k] * matrixB[k][j];
}
}
}
// 输出结果矩阵
System.out.println("Matrix multiplication result:");
for (int[] row : result) {
for (int element : row) {
System.out.print(element + " ");
}
System.out.println();
}
scanner.close();
}
}
```
阅读全文