检查幂等矩阵的JavaScript程序
幂等矩阵是一个方阵,它具有相同数量的行和列,当我们将矩阵自身相乘时,结果将等于相同的矩阵。我们将得到一个矩阵,我们必须找到它是否是幂等矩阵。
数学上−
如果给定的矩阵是M,那么M成为幂等矩阵的条件是:
M*M = M
矩阵乘法
矩阵与另一个矩阵相乘会产生另一个矩阵,如果给定的矩阵是N*N的方阵,则结果矩阵的维度也将相同(N*N)。
两个矩阵A和B相乘的结果矩阵的每个索引(i,j)是矩阵A的第j列与矩阵B的第i列的乘法加法的总和。
输入
Mat = [ [1, 0], [0, 1]]
输出
Yes, the given matrix is an Idempotent matrix.
解释
For the cell (0,0): We have to multiply [1,0] with [1,0] => 1* 1 + 0 * 0 = 1. For the cell (0,1): We have to multiply [0,1] with [1,0] => 0* 1 + 0 * 1 = 0. For the cell (1,0): We have to multiply [1,0] with [0,1] => 1* 0 + 0 * 1 = 0. For the cell (1,1): We have to multiply [0,1] with [0,1] => 0* 0 + 1 * 1 = 1. So, the final matrix we will get is: [ [1, 0], [0, 1]]
方法
我们已经看到了两个矩阵相乘的示例和方法,现在让我们看看实现代码以查找给定矩阵是否为幂等矩阵的步骤。
首先,我们将创建一个函数,该函数将采用单个参数,该参数将是待查找的矩阵,判断其是否为幂等矩阵。
我们将获取矩阵的长度,并使用它通过for循环遍历矩阵的每个单元格。
在每个索引或单元格处,我们将使用上述步骤获取答案矩阵当前单元格中的值。
我们将使用for循环遍历当前列和行,并获取它们的乘法和。
如果当前和等于当前索引值,我们将移动到下一个值,否则我们将返回false。
基于返回值,我们将打印语句,说明当前矩阵是否为幂等矩阵。
示例
// function to check if the current matrix is an Idempotent matrix or not function check(mat){ // getting the size of the given matrix. var n = mat.length; // traversing over the given matrix for(var i = 0;i < n; i++){ for(var j = 0; j<n; j++){ // for the current cell calculating the value present in the resultant matrix // variable to store the current cell value var cur = 0; for(var k = 0; k<n; k++){ cur += mat[k][j]*mat[i][k]; } // if the current value is not equal to value we got for this cell then return false if(cur != mat[i][j]){ return false; } } } // returing true as all the values matched return true; } // defining the matrix var mat = [[2, -2, -4], [-1, 3, 4 ], [1, -2, -3]] console.log("The given matrix is: ") console.log(mat); // calling the function to check if the current matrix is idempotent matrix or not if(check(mat)){ console.log("The given matrix is idempotent matrix") } else { console.log("The given matrix is not idempotent matrix") }
时间和空间复杂度
上述代码的时间复杂度为O(N^3),其中N是给定矩阵的行数。对于每个单元格,我们必须将当前列与当前行相乘以产生因子N,并且总共有N^N个单元格。
上述代码的空间复杂度为O(1),因为我们没有使用任何额外的空间来存储矩阵。
结论
在本教程中,我们实现了一个JavaScript程序来检查给定的矩阵是否为幂等矩阵。幂等矩阵是一个方阵,它具有相同数量的行和列,当我们将矩阵自身相乘时,结果将等于相同的矩阵。我们已经实现了时间复杂度为O(N^3)并在O(1)空间复杂度下工作的代码。
广告