Maison >interface Web >js tutoriel >Programme JavaScript pour calculer la fréquence des nombres pairs et impairs dans une matrice

Programme JavaScript pour calculer la fréquence des nombres pairs et impairs dans une matrice

王林
王林avant
2023-09-17 13:13:02917parcourir

JavaScript 程序计算矩阵中偶数和奇数的频率

Dans ce tutoriel, nous allons implémenter un programme JavaScript pour trouver la fréquence des nombres pairs et impairs. On nous donnera une matrice 2D de taille MXN et nous devons trouver la fréquence de tous les nombres impairs et pairs présents dans la matrice (c'est-à-dire le nombre d'éléments présents). Nous verrons deux méthodes, l'une est la méthode par force brute (utilisant une boucle for) et l'autre est la méthode de l'opérateur ET au niveau du bit.

Introduction au problème

Dans ce problème, nous recevons une matrice 2D qui contient des nombres pairs et impairs de manière non triée et nous devons trouver la fréquence des nombres pairs et impairs dans la matrice 2D. Par exemple -

Dans ce problème, nous recevons une matrice 2D qui contient des nombres pairs et impairs de manière non triée et nous devons trouver la fréquence des nombres pairs et impairs dans la matrice 2D. Par exemple -

Row ( m ) = 3; Column ( n ) = 3;
Matrix = [[1, 2, 3], 
          [4, 5, 6], 
          [7, 8, 9]];

Selon la matrice donnée de taille 3X3, nous obtenons la fréquence des nombres impairs et pairs comme -

Frequency of odd number =  5 
Frequency of even number = 4

On peut renvoyer les fréquences, on peut simplement les imprimer telles quelles, passons à la solution au problème -

Méthode 1 (en utilisant l'opérateur mod '%')

Dans cette approche, nous parcourons simplement la matrice en utilisant des boucles for imbriquées. En parcourant la boucle for, nous avons calculé la fréquence des nombres impairs et pairs dans la matrice 2D. Pour vérifier si la valeur est impaire ou paire, nous utilisons l'opérateur mod ('%') qui prend essentiellement le nombre modulo 2, si la valeur du mod est '1' cela signifie qu'elle est impaire sinon elle est paire et enfin, nous renvoyons le comptes pairs et impairs. Passons au code de cette méthode pour mieux comprendre.

Exemple

Voici un programme JavaScript pour trouver la fréquence des nombres pairs et impairs dans une matrice à l'aide d'opérateurs de modèles -

let MAX = 100;
// function for calculating frequency
function freq(arr,row,col) {
   let evenNum = 0, oddNum = 0;
   for (let i = 0; i < row; ++i) {
      for (let j = 0; j < col; ++j) {
         // checking evenNum or oddNum using mod operator
         if ((arr[i][j] % 2) == 0)
         ++evenNum;
         else
         ++oddNum;
      }
   }
   // print Frequency of odd and even numbers
   console.log(" Frequency of odd numbers = " + oddNum );
   console.log(" Frequency of even numbers = " + evenNum );
}
let m = 3, n = 3;
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
freq(arr, m, n);

Complexité temporelle et spatiale

La complexité temporelle du code ci-dessus est O(M*N), où M est la taille des lignes de la matrice bidimensionnelle et N est la taille des colonnes.

La complexité spatiale du code ci-dessus est O(1) car nous utilisons des valeurs int pour stocker uniquement des entiers.

Méthode 2 (en utilisant l'opérateur '&' au niveau du bit)

Dans cette méthode, nous allons simplement parcourir la matrice en utilisant des boucles for imbriquées. En parcourant la boucle for, nous avons calculé la fréquence des nombres impairs et pairs dans la matrice 2D. Pour vérifier si la valeur est impaire ou paire, nous utilisons l'opérateur bit à bit ("&") qui prend essentiellement la valeur bit à bit du nombre comme 1, si la valeur bit à bit est "0", cela signifie qu'il est pair, sinon cela signifie qu'il est pair. est un nombre impair. Enfin, nous renvoyons le nombre de nombres impairs et pairs. Passons au code de cette méthode pour mieux comprendre.

Exemple

Voici un programme JavaScript qui utilise l'opérateur bitwise & pour trouver la fréquence des nombres pairs et impairs dans une matrice -

let MAX = 100;
// function for calculating frequency
function freq(arr,row,col) {
   let evenNum = 0, oddNum = 0;
   for (let i = 0; i < row; ++i) {
      for (let j = 0; j < col; ++j) {
         // checking evenNum or oddNum using bitwise operator
         if ((arr[i][j] & 1) == 0)
         ++evenNum;
         else
         ++oddNum;
      }
   }
   // print Frequency of odd and even numbers
   console.log(" Frequency of odd numbers = " + oddNum );
   console.log(" Frequency of even numbers = " + evenNum );
}
let m = 3, n = 3;
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
freq(arr, m, n);

Complexité temporelle et spatiale

La complexité temporelle du code ci-dessus est O(M*N), où M est la taille des lignes de la matrice bidimensionnelle et N est la taille des colonnes.

La complexité spatiale du code ci-dessus est O(1) car nous utilisons des valeurs int pour stocker uniquement des entiers.

Conclusion

Dans ce tutoriel, nous avons implémenté un programme JavaScript pour trouver la fréquence des nombres pairs et impairs dans une matrice 2D. On nous donne une matrice 2D de taille NXM et nous devons trouver les fréquences des valeurs paires et impaires de cette matrice 2D. Nous avons vu deux méthodes, l'une utilise l'opérateur mod et l'autre utilise les opérateurs au niveau du bit.

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