矩阵乘积
在 codewars 做练习题时遇到 一道矩阵相关的题目,一开始挺懵逼的,因为相关的的概念忘得差不多了,于是查了一下 资料
可知矩阵 A、B 乘积 ( C=AB ) 满足的条件是:
1、当矩阵A的列数等于矩阵B的行数时,A与B可以相乘。2、矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。3、乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和
根据已知条件和题目要求可解:
function getMatrixProduct(a, b) { //If a and b can be multiplied, returns the product of a and b as a two-dimensional array. Otherwise returns -1. if(a[0].length!==b.length) return -1 let aRows=a.length let aCols=a[0].length let bRows=b.length let bCols=b[0].length let result=new Array(aRows) for(let i=0;i<aRows;i++){ result[i]=new Array(bCols) for(let j=0;j<bCols;j++){ result[i][j]=0 for(let k=0;k<aCols;k++){ result[i][j]+=a[i][k]*b[k][j] } } } return result };