Maison  >  Article  >  interface Web  >  Programme JavaScript pour vérifier la matrice idempotente

Programme JavaScript pour vérifier la matrice idempotente

PHPz
PHPzavant
2023-09-01 20:09:161394parcourir

JavaScript 程序检查幂等矩阵

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

Multiplication matricielle

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.

Entrez

Mat = [ [1, 0],
	    [0, 1]]

Sortie

Yes, the given matrix is an Idempotent matrix.

Instructions

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]]

Méthode

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.

Exemple

// 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")
}

Complexité temporelle et spatiale

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.

Conclusion

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer