package com.shekhargulati.random; /** * Perform matrix multiplication of two arrays. * Matrix multiplication of array A of size nxm and array B of size mxp is an array of size nxp */ public class RandomProblem003 { public static int[][] matrixMultiplication(int[][] a, int[][] b) { int rowsA = a.length; int colsA = a[0].length; int rowsB = b.length; int colsB = b[0].length; if (colsA != rowsB) { throw new IllegalArgumentException("Can't perform matrix calculation on matrix with given sizes"); } int[][] result = new int[rowsA][colsB]; for (int i = 0; i < rowsA; i++) { for (int j = 0; j < colsB; j++) { int fValue = 0; for (int k = 0; k < colsA; k++) { fValue += a[i][k] * b[k][j]; } result[i][j] = fValue; } } return result; } }