Program JavaScript untuk menyemak matriks idempoten

PHPz
Lepaskan: 2023-09-01 20:09:16
ke hadapan
1416 orang telah melayarinya

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

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

Output

Yes, the given matrix is an Idempotent matrix.
Salin selepas log masuk

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

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

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!

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!