首頁  >  文章  >  web前端  >  JavaScript 程式計算矩陣中偶數和奇數的頻率

JavaScript 程式計算矩陣中偶數和奇數的頻率

王林
王林轉載
2023-09-17 13:13:02851瀏覽

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

在本教學中,我們將實作一個 JavaScript 程式來找出偶數和奇數的頻率。我們將得到一個 MXN 大小的 2D 矩陣,我們必須找到矩陣中存在的所有奇數和偶數的頻率(意味著存在的元素的數量)。我們將看到兩種方法,一種是強力方法(使用 for 迴圈),另一種是按位元與運算子方法。

問題簡介

在這個問題中,我們得到一個二維矩陣,其中以未排序的方式包含奇數和偶數,我們必須找到二維矩陣中奇數和偶數的頻率。例如 -

在這個問題中,我們得到一個二維矩陣,其中以未排序的方式包含奇數和偶數,我們必須找到二維矩陣中奇數和偶數的頻率。例如 -

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

根據給定的大小為 3X3 的矩陣,我們得到奇數和偶數的頻率為 -

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

我們可以返回頻率,我們可以簡單地按原樣列印它們,讓我們轉向解決問題的方法 -

方法 1(使用 mod ‘%’ 運算子)

在這個方法中,我們簡單地使用巢狀 for 迴圈遍歷矩陣。在遍歷 for 迴圈時,我們計算了二維矩陣中奇數和偶數的頻率。為了檢查該值是奇數還是偶數,我們使用mod ('%') 運算符,基本上對數字取2 的模,如果mod 值為'1',則表示它是奇數,否則它是偶數,並且最後,我們傳回奇數和偶數的計數。讓我們轉到此方法的程式碼以更好地理解。

範例

下面是一個 JavaScript 程序,用於使用模式運算子來尋找矩陣中偶數和奇數的頻率 -

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

時間與空間複雜度

上述程式碼的時間複雜度為 O(M*N),其中 M 是二維矩陣的行大小,N 是列大小。

上述程式碼的空間複雜度為 O(1),因為我們使用了 int 值來只儲存整數。

方法 2(使用位元‘&’運算子)

在這個方法中,我們將使用嵌套的 for 迴圈簡單地遍歷矩陣。在遍歷 for 迴圈時,我們計算了二維矩陣中奇數和偶數的頻率。為了檢查該值是奇數還是偶數,我們使用了按位(“&”)運算符,基本上將數字按位取1,如果按位值為“0”,則表示它是偶數,否則表示它是奇數。最後我們傳回奇數和偶數的計數。讓我們轉到此方法的程式碼以更好地理解。

範例

下面是一個 JavaScript 程序,使用位元 & 運算子找出矩陣中偶數和奇數的頻率 -

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

時間與空間複雜度

上述程式碼的時間複雜度為 O(M*N),其中 M 是二維矩陣的行大小,N 是列大小。

上述程式碼的空間複雜度為 O(1),因為我們使用了 int 值來只儲存整數。

結論

在本教程中,我們實作了一個 JavaScript 程序,用於尋找二維矩陣中偶數和奇數的頻率。我們給定了一個大小為 NXM 的二維矩陣,我們必須找到該二維矩陣奇數值和偶數值的頻率。我們已經看到了兩種方法,一種是使用 mod 運算符,另一種是使用位元運算符。

以上是JavaScript 程式計算矩陣中偶數和奇數的頻率的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除