问题描述
算法实现
/**
* 矩阵乘法
* @param A,为n × m矩阵
* @param B,为m × p矩阵
* @return 结果为n × p矩阵
*/
public static long[][] multiply(long[][] A, long[][] B) {
final int n = A.length;//A的行数
final int m = A[0].length;//A的列数
if (m != B.length) throw new IllegalArgumentException();
final int p = B[0].length;
long[][] result = new long[n][p];//新矩阵的行数为m1的行数,列数为m2的列数
for (int i = 0;i < n;i++) {//A的每一行
for (int j = 0;j < p;j++) {//B的每一列
for (int k = 0;k < m;k++) {
result[i][j] += A[i][k] * B[k][j];
}
}
}
return result;
}