首頁  >  文章  >  web前端  >  JavaScript 程式檢查矩陣是否為上三角

JavaScript 程式檢查矩陣是否為上三角

WBOY
WBOY轉載
2023-09-08 08:41:06592瀏覽

JavaScript 程序检查矩阵是否为上三角

上三角矩陣是一個方陣,具有相同的行數和列數,並且主對角線下方的所有元素從第一個單元格(位於左上角)到最後一個儲存格(位於左上角)右下角)為零。上三角形意味著下三角形中存在的元素將為零。我們將實作一個適當的程式碼,並對時間和空間複雜性進行解釋和討論。

範例

Input1:
mat = [ [ 1, 2, 3, 4],
   [ 0, 5, 6, 7],
   [ 0, 0, 8, 9],
   [ 0, 0, 0, 1]
]
Output1: Yes,

解釋:我們可以看到主對角線包含元素 1、5、8 和 1,並且主對角線下方的所有單元格的值都為零。

Input2:
mat = [ [ 1, 2, 3, 4],
   [ 0, 5, 6, 7],
   [ 0, 0, 8, 9],
   [ 0, 1, 0, 1]
]
Output1: No

解釋:我們可以看到主對角線包含元素1、5、8 和1,並且主對角線下方的所有單元格的值都不為零,因為最後一行的第二列包含非零值值。

方法

我們已經看到了上面的範例,現在讓我們看看實作程式碼的步驟:

首先,我們將建立一個函數,在其中傳遞給定的矩陣。我們將只遍歷矩陣的主對角線下側部分,即每個單元格 (i,j),其中 j 小於 i。如果我們發現任何儲存格具有非零值,我們將傳回 false,否則最終我們將傳回 true。

範例

// function to traverse over the matrix
function check(mat){

   // getting total number of rows of matrix
   var rows = mat.length
   
   // traversing over the section present above the main diagonal
   for(var i = 0; i < rows; i++){
      for(var j = 0; j < i; j++){
         if(mat[i][j] != 0){
            return false;
         }
      }
   }
   return true;
}

// defining the matrix
var mat = [ [ 1, 2, 3, 4],
   [ 0, 5, 6, 7],
   [ 0, 0, 8, 9],
   [ 0, 0, 0, 1]
]
   
// given matrix
console.log("The given matrix is: ");
console.log(mat)
if(check(mat)){
   console.log("The given matrix is an upper triangular matrix");
}
else{
   console.log("The given matrix is not an upper triangular matrix");
}

// updating matrix
mat = [ [ 1, 2, 3, 4],
   [ 0, 5, 6, 7],
   [ 0, 0, 8, 9],
   [ 0, 1, 0, 1]
      ]
   
// given matrix
console.log("The given matrix is: ");
console.log(mat)
if(check(mat)){
   console.log("The given matrix is an upper triangular matrix");
}
else{
   console.log("The given matrix is not an upper triangular matrix");
}

輸出

The given matrix is: 
[ [ 1, 2, 3, 4 ], [ 0, 5, 6, 7 ], [ 0, 0, 8, 9 ], [ 0, 0, 0, 1 ] ]
The given matrix is an upper triangular matrix
The given matrix is: 
[ [ 1, 2, 3, 4 ], [ 0, 5, 6, 7 ], [ 0, 0, 8, 9 ], [ 0, 1, 0, 1 ] ]
The given matrix is not an upper triangular matrix

時間與空間複雜度

上述程式碼的時間複雜度為O(N*N),其中N是給定矩陣的行數。這是因為我們只遍歷了矩陣一次。

上述程式碼的空間複雜度為 O(1),因為我們沒有使用任何額外的空間。

結論

在本教程中,我們實作了一個 JavaScript 程式來檢查給定矩陣是否是上三角矩陣。上三角形意味著下三角形中存在的元素將為零。我們遍歷了矩陣中列數小於行數的單元格,時間複雜度為 O(N*N),空間複雜度為 O(1)。

以上是JavaScript 程式檢查矩陣是否為上三角的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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