Rumah  >  Artikel  >  hujung hadapan web  >  Program JavaScript untuk menyemak matriks idempoten

Program JavaScript untuk menyemak matriks idempoten

PHPz
PHPzke hadapan
2023-09-01 20:09:161439semak imbas

JavaScript 程序检查幂等矩阵

Matriks idempoten ialah matriks segi empat sama dengan bilangan baris dan lajur yang sama, apabila kita mendarabkan matriks dengan dirinya sendiri hasilnya akan sama dengan matriks yang sama. Kami akan mendapatkan matriks dan kami perlu menentukan sama ada ia adalah idempoten.

Secara matematik

Jika matriks ix M diberikan, maka M ialah matriks idempoten dan harus mengikut sifat berikut -

M*M = M

Pendaraban matriks

Mendarab satu matriks dengan matriks yang lain akan menghasilkan matriks yang lain, jika matriks yang diberi ialah matriks persegi N*N, matriks yang terhasil juga akan mempunyai dimensi yang sama (N*N).

Setiap indeks (i, j) bagi matriks yang terhasil bagi pendaraban dua matriks A dan B ialah hasil tambah bagi pendaraban lajur ke-j matriks A dan lajur ke-i matriks B.

Masuk

Mat = [ [1, 0],
	    [0, 1]]

Output

Yes, the given matrix is an Idempotent matrix.

Arahan

For the cell (0,0): We have to multiply [1,0] with [1,0] => 1* 1 + 0 * 0 = 1. 
For the cell (0,1): We have to multiply [0,1] with [1,0] => 0* 1 + 0 * 1 = 0. 
For the cell (1,0): We have to multiply [1,0] with [0,1] => 1* 0 + 0 * 1 = 0.
For the cell (1,1): We have to multiply [0,1] with [0,1] => 0* 0 + 1 * 1 = 1.  
So, the final matrix we will get is: [ [1, 0], [0, 1]]

Kaedah

Kita telah melihat contoh dan kaedah untuk mencari pendaraban dua matriks, sekarang mari kita lihat langkah-langkah untuk melaksanakan kod untuk mengetahui sama ada matriks yang diberikan adalah idempoten atau tidak.

  • Pertama, kami akan mencipta fungsi yang akan mengambil satu parameter, yang akan menjadi matriks yang akan ditemui, sama ada idempoten atau tidak.

  • Kami akan mendapatkan panjang matriks dan menggunakannya untuk melelaran melalui setiap sel matriks melalui gelung for.

  • Dalam setiap indeks atau sel kita akan mendapat nilai yang ada dalam sel semasa matriks jawapan menggunakan langkah di atas.

  • Kami akan menggunakan gelung for untuk lelaran melalui lajur dan baris semasa dan mendapatkan jumlah darabnya.

  • Jika jumlah semasa adalah sama dengan nilai indeks semasa, maka kita akan beralih ke nilai seterusnya, jika tidak, ia akan kembali palsu.

  • Berdasarkan nilai pulangan, cetak penyata sama ada matriks semasa adalah idempoten.

Contoh

// function to check if the current matrix is an Idempotent matrix or not
function check(mat){

   // getting the size of the given matrix. 
   var n = mat.length;    
   
   // traversing over the given matrix 
   for(var i = 0;i < n; i++){
      for(var j = 0; j<n; j++){
      
         // for the current cell calculating the value present in the resultant matrix 
         
         // variable to store the current cell value 
         var cur = 0;
         for(var k = 0; k<n; k++){
            cur += mat[k][j]*mat[i][k];
         }
         
         // if the current value is not equal to value we got for this cell then return false 
         if(cur != mat[i][j]){
            return false;
         }
      }
   }
   
   // returing true as all the values matched 
   return true;
}

// defining the matrix 
var mat = [[2, -2, -4],
           [-1, 3, 4 ],
           [1, -2, -3]]
console.log("The given matrix is: ")
console.log(mat);

// calling the function to check if the current matrix is idempotent matrix or not 
if(check(mat)){
   console.log("The given matrix is idempotent matrix")
}
else {
   console.log("The given matrix is not idempotent matrix")
}

Kerumitan masa dan ruang

Kerumitan masa kod di atas ialah O(N^3), dengan N ialah bilangan baris bagi matriks yang diberikan. Untuk setiap sel, kita mesti mendarab lajur semasa dengan baris semasa untuk menghasilkan faktor, atau N, untuk jumlah sel N^N.

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

Kesimpulan

Dalam tutorial ini, kami melaksanakan program JavaScript untuk menyemak sama ada matriks yang diberikan adalah idempoten. Matriks idempoten ialah matriks segi empat sama dengan bilangan baris dan lajur yang sama, apabila kita mendarabkan matriks dengan dirinya sendiri, hasilnya akan sama dengan matriks yang sama. Kami melaksanakan kod dalam kerumitan masa O(N^3) dan bekerja dalam kerumitan ruang O(1).

Atas ialah kandungan terperinci Program JavaScript untuk menyemak matriks idempoten. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam