Maison >interface Web >js tutoriel >Programme JavaScript pour vérifier la matrice idempotente
Une matrice idempotente est une matrice carrée avec le même nombre de lignes et de colonnes, lorsque l'on multiplie la matrice par elle-même, le résultat sera égal à la même matrice. Nous allons obtenir une matrice et nous devons déterminer si elle est idempotente.
Mathématiquement−
Si une matrice ix M est donnée, alors M est une matrice idempotente et doit suivre les propriétés suivantes -
M*M = M
La multiplication d'une matrice avec une autre matrice produira une autre matrice, si la matrice donnée est une matrice carrée de N*N, la matrice résultante aura également les mêmes dimensions (N*N).
Chaque indice (i, j) de la matrice résultante de la multiplication de deux matrices A et B est la somme des multiplications de la j-ème colonne de la matrice A et de la i-ème colonne de la matrice B.
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]]
Nous avons vu les exemples et les méthodes pour trouver la multiplication de deux matrices, regardons maintenant les étapes pour implémenter le code pour savoir si la matrice donnée est idempotente ou non.
Dans un premier temps, nous allons créer une fonction qui prendra un seul paramètre, qui sera la matrice à trouver, qu'elle soit idempotente ou non.
Nous obtiendrons la longueur de la matrice et l'utiliserons pour parcourir chaque cellule de la matrice via une boucle for.
Dans chaque index ou cellule, nous obtiendrons la valeur présente dans la cellule actuelle de la matrice de réponse en suivant les étapes ci-dessus.
Nous utiliserons une boucle for pour parcourir la colonne et la ligne actuelles et obtenir leur somme multiplicative.
Si la somme actuelle est égale à la valeur actuelle de l'indice, alors nous passerons à la valeur suivante, sinon elle retournera faux.
En fonction de la valeur de retour, imprimez l'instruction indiquant si la matrice actuelle est idempotente.
// 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") }
La complexité temporelle du code ci-dessus est O(N^3), où N est le nombre de lignes de la matrice donnée. Pour chaque cellule, nous devons multiplier la colonne actuelle par la ligne actuelle pour produire un facteur, ou N, pour un total de N^N cellules.
La complexité spatiale du code ci-dessus est O(1) car nous n'utilisons aucun espace supplémentaire pour stocker la matrice.
Dans ce tutoriel, nous avons implémenté un programme JavaScript pour vérifier si une matrice donnée est idempotente. Une matrice idempotente est une matrice carrée avec le même nombre de lignes et de colonnes, lorsque l'on multiplie la matrice par elle-même, le résultat sera égal à la même matrice. Nous avons implémenté le code en complexité temporelle O(N^3) et travaillé en complexité spatiale O(1).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!