Program JavaScript untuk memeriksa sama ada matriks adalah segi tiga atas

WBOY
Lepaskan: 2023-09-08 08:41:06
ke hadapan
609 orang telah melayarinya

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

Matriks segi tiga atas ialah matriks segi empat sama dengan bilangan baris dan lajur yang sama dan semua elemen di bawah pepenjuru utama dari sel pertama (terletak di sudut kiri atas) hingga sel terakhir (terletak di bahagian atas). sudut kiri ) sudut kanan bawah) ialah sifar. Segitiga atas bermakna unsur-unsur yang terdapat dalam segitiga bawah akan menjadi sifar. Kami akan melaksanakan kod yang sesuai dan kerumitan masa dan ruang akan diterangkan dan dibincangkan.

Contoh

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

Penjelasan: Kita dapat melihat bahawa pepenjuru utama mengandungi unsur 1, 5, 8 dan 1, dan semua sel di bawah pepenjuru utama mempunyai nilai sifar.

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

Penjelasan: Kita dapat melihat bahawa pepenjuru utama mengandungi unsur 1, 5, 8 dan 1, dan semua sel di bawah pepenjuru utama mempunyai nilai bukan sifar kerana lajur kedua baris terakhir mengandungi nilai bukan sifar .

Kaedah

Kita telah melihat contoh di atas, sekarang mari kita lihat langkah-langkah untuk melaksanakan kod:

Pertama, kami akan mencipta fungsi di mana kami melepasi matriks yang diberikan. Kami hanya akan merentasi bahagian bawah pepenjuru utama matriks, iaitu setiap sel (i,j) di mana j kurang daripada i. Jika kami menemui mana-mana sel dengan nilai bukan sifar, kami akan mengembalikan palsu, jika tidak, kami akhirnya akan mengembalikan benar.

Contoh

// 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");
}
Salin selepas log masuk

Output

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
Salin selepas log masuk

Kerumitan masa dan ruang

Kerumitan masa kod di atas ialah O(N*N), dengan N ialah bilangan baris matriks yang diberikan. Ini kerana kita hanya berulang melalui matriks sekali.

Kerumitan ruang kod di atas ialah O(1) kerana kami tidak menggunakan sebarang ruang tambahan.

Kesimpulan

Dalam tutorial ini, kami melaksanakan program JavaScript untuk menyemak sama ada matriks yang diberikan ialah matriks segi tiga atas. Segitiga atas bermakna unsur-unsur yang terdapat dalam segitiga bawah akan menjadi sifar. Kami mengulangi sel dalam matriks dengan bilangan lajur kurang daripada bilangan baris, dengan kerumitan masa O(N*N) dan kerumitan ruang O(1).

Atas ialah kandungan terperinci Program JavaScript untuk memeriksa sama ada matriks adalah segi tiga atas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!