项目场景,根据数据给定一个矩阵以及相对应值,要求将矩阵求逆后乘积,分别求出A/B/C三个值
矩阵求逆:
function det(square) {
// 方阵约束
if(square.length !== square[0].length) {
throw new Error();
}
// 方阵阶数
const n = square.length;
let result = 0;
if(n > 3) {
// n 阶
for(let column = 0; column < n; column++) {
// 去掉第 0 行第 column 列的矩阵
const matrix = new Array(n - 1).fill(0).map(arr => new Array(n - 1).fill(0));
for(let i = 0; i < n - 1; i++) {
for(let j = 0; j < n - 1; j++) {
if(j < column) {
matrix[i][j] = square[i + 1][j];
}
else {
matrix[i][j] = square[i + 1][j + 1];
}
}
}
result += square[0][column] * Math.pow(-1, 0 + column) * det(matrix);
}
}
else if(n === 3) {
// 3 阶