Heim  >  Artikel  >  Web-Frontend  >  JavaScript-Programm zur Berechnung der Häufigkeit gerader und ungerader Zahlen in einer Matrix

JavaScript-Programm zur Berechnung der Häufigkeit gerader und ungerader Zahlen in einer Matrix

王林
王林nach vorne
2023-09-17 13:13:02851Durchsuche

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

In diesem Tutorial implementieren wir ein JavaScript-Programm, um die Häufigkeit gerader und ungerader Zahlen zu ermitteln. Wir erhalten eine 2D-Matrix der Größe MXN und müssen die Häufigkeit aller in der Matrix vorhandenen ungeraden und geraden Zahlen ermitteln (d. h. die Anzahl der vorhandenen Elemente). Wir werden zwei Methoden sehen, eine ist die Brute-Force-Methode (unter Verwendung einer for-Schleife) und die andere ist die bitweise UND-Operator-Methode.

Einführung in das Problem

In diesem Problem erhalten wir eine 2D-Matrix, die ungerade und gerade Zahlen unsortiert enthält, und wir müssen die Häufigkeit ungerader und gerader Zahlen in der 2D-Matrix ermitteln. Zum Beispiel -

In diesem Problem erhalten wir eine 2D-Matrix, die ungerade und gerade Zahlen unsortiert enthält, und wir müssen die Häufigkeit ungerader und gerader Zahlen in der 2D-Matrix ermitteln. Zum Beispiel -

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

Gemäß der gegebenen Matrix der Größe 3X3 erhalten wir die Häufigkeit ungerader und gerader Zahlen als -

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

Wir können die Frequenzen zurückgeben, wir können sie einfach so ausdrucken, wie sie sind, kommen wir zur Lösung des Problems -

Methode 1 (mit dem Mod-Operator „%“)

Bei diesem Ansatz iterieren wir einfach mit verschachtelten for-Schleifen über die Matrix. Beim Durchlaufen der for-Schleife haben wir die Häufigkeit ungerader und gerader Zahlen in der 2D-Matrix berechnet. Um zu überprüfen, ob der Wert ungerade oder gerade ist, verwenden wir den Operator mod ('%'), der grundsätzlich die Zahl Modulo 2 annimmt. Wenn der Mod-Wert '1' ist, bedeutet dies, dass er ungerade ist, andernfalls ist er gerade, und schließlich geben wir zurück ungerade und gerade zählen. Gehen wir zum besseren Verständnis zum Code dieser Methode.

Beispiel

Hier ist ein JavaScript-Programm zum Ermitteln der Häufigkeit gerader und ungerader Zahlen in einer Matrix mithilfe von Musteroperatoren -

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);

Zeitliche und räumliche Komplexität

Die zeitliche Komplexität des obigen Codes beträgt O(M*N), wobei M die Zeilengröße der zweidimensionalen Matrix und N die Spaltengröße ist.

Die räumliche Komplexität des obigen Codes beträgt O(1), da wir int-Werte verwenden, um nur ganze Zahlen zu speichern.

Methode 2 (mit bitweisem „&“-Operator)

Bei dieser Methode iterieren wir einfach mit verschachtelten for-Schleifen über die Matrix. Beim Durchlaufen der for-Schleife haben wir die Häufigkeit ungerader und gerader Zahlen in der 2D-Matrix berechnet. Um zu überprüfen, ob der Wert ungerade oder gerade ist, verwenden wir den bitweisen Operator („&“), der den bitweisen Wert der Zahl grundsätzlich als 1 annimmt. Wenn der bitweise Wert „0“ ist, bedeutet dies, dass er gerade ist, andernfalls bedeutet er, dass er gerade ist ist eine ungerade Zahl. Schließlich geben wir die Anzahl der ungeraden und geraden Zahlen zurück. Gehen wir zum besseren Verständnis zum Code dieser Methode.

Beispiel

Hier ist ein JavaScript-Programm, das den bitweisen &-Operator verwendet, um die Häufigkeit gerader und ungerader Zahlen in einer Matrix zu ermitteln -

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);

Zeitliche und räumliche Komplexität

Die zeitliche Komplexität des obigen Codes beträgt O(M*N), wobei M die Zeilengröße der zweidimensionalen Matrix und N die Spaltengröße ist.

Die räumliche Komplexität des obigen Codes beträgt O(1), da wir int-Werte verwenden, um nur ganze Zahlen zu speichern.

Fazit

In diesem Tutorial haben wir ein JavaScript-Programm implementiert, um die Häufigkeit gerader und ungerader Zahlen in einer 2D-Matrix zu ermitteln. Wir erhalten eine 2D-Matrix der Größe NXM und müssen die Häufigkeiten der ungeraden und geraden Werte dieser 2D-Matrix ermitteln. Wir haben zwei Methoden gesehen, eine verwendet den Mod-Operator und die andere die bitweisen Operatoren.

Das obige ist der detaillierte Inhalt vonJavaScript-Programm zur Berechnung der Häufigkeit gerader und ungerader Zahlen in einer Matrix. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen