Heim  >  Artikel  >  Web-Frontend  >  JavaScript-Programm für Markov-Matrizen

JavaScript-Programm für Markov-Matrizen

WBOY
WBOYnach vorne
2023-08-26 19:17:07626Durchsuche

马尔可夫矩阵的 JavaScript 程序

Eine Matrix ist ein zweidimensionales Array mit einer bestimmten Anzahl von Zeilen und jede Zeile hat die gleiche Anzahl von Spalten. Die Anzahl der Zeilen und Spalten kann verwendet werden, um das Element an einem bestimmten Index abzurufen. Bei einer Markov-Matrix muss die Summe jeder Zeile gleich 1 sein. Wir werden einen Code implementieren, der eine neue Markov-Matrix erstellt und ermittelt, ob die aktuell angegebene Matrix eine Markov-Matrix ist.

Einführung in das Problem

In der gegebenen Frage müssen wir einen Code schreiben, um eine Markov-Matrix zu generieren, indem wir Binärdaten verwenden, d. h. nur Nullen und Einsen verwenden, da wir wissen, dass eine Markov-Matrix eine Matrix ist, in der die Summe der Zeilen gleich 1 sein muss (Das bedeutet nicht, dass es nur aus Binärzahlen besteht), es bedeutet, dass in jeder Zeile eine 1 steht und die anderen Elemente Nullen sind.

Das Programm, das wir implementieren werden, ist nur ein Sonderfall der Markov-Matrix.

Für den zweiten Code erhalten wir eine Matrix und müssen herausfinden, ob die aktuelle Matrix eine Markov-Matrix ist. Schauen wir uns diese beiden Codes an -

Markov-Matrix erstellen

Im aktuellen Abschnitt verwenden wir die Binärzahlen 0 und 1, um eine Markov-Matrix zu erstellen. Schauen wir uns zunächst die Methode an und gehen dann zur Code-Implementierung über -

Methode

In diesem Code erstellen wir eine Matrix mit einem neuen Schlüsselwort und einem neuen Array. Für jeden Index des Arrays erstellen wir erneut ein Array, um es zu füllen.

Für jede Zeile der Matrix erhalten wir mithilfe der Zufallsfunktion eine Zufallszahl im Bereich der Anzahl der Spalten und füllen diese Spalte der aktuellen Zeile mit 1 und die anderen mit 0.

Schließlich werden wir die Matrix zurückgeben.

Beispiel

// creating a Markov's Matrix using binary digits
// defining the rows and columns
var row = 4
var col = 5
function MarkovMat(row, col){

   // creating an array of size row
   var arr = new Array(row);

   // traversing over the created array
   for(var i = 0; i < row; i++){

      // creating an array of size column
      var brr = new Array(col);
      brr.fill(0) // making every element zero of current array

      // generating random number
      var k = Math.floor(Math.random()*5);

      // marking kth index as 1
      brr[k] = 1

      // adding columns to the current row
      arr[i] = brr;
   }

   // printing the values
   console.log(arr)
}

// calling the function
MarkovMat(row,col)

Zeitliche und räumliche Komplexität

Im obigen Code haben wir die komplette Matrix verschoben und für jede Bewegung oder Durchquerung erhalten wir jedes Mal Zufallszahlen, was eine konstante Zeit in Anspruch nimmt. Daher beträgt die zeitliche Komplexität des obigen Codes O(N*M), wobei N die Anzahl der Zeilen und M die Anzahl der Spalten ist.

Die Raumkomplexität entspricht genau der Größe der Matrix und wir verwenden keinen zusätzlichen Raum. Daher beträgt die räumliche Komplexität des obigen Codes O(N*M).

Überprüfen Sie, ob die aktuelle Matrix Markovian ist

Im aktuellen Teil erhalten wir eine Matrix und müssen herausfinden, ob die aktuelle Matrix eine Markov-Matrix ist. Schauen wir uns zunächst die Methode an und gehen dann zur Code-Implementierung über -

Methode

In diesem Code durchlaufen wir einfach die Matrix und ermitteln die Anzahl für jede Zeile. Wenn die Anzahl der aktuellen Zeile 1 ist, gehen wir zur nächsten Zeile, andernfalls geben wir die aktuelle Matrix zurück, die keine Markov-Matrix ist.

Beispiel

// function to check whether the current matrix is
// markov or not
function isMarkov(mat){
   var rows = mat.length
   var col = mat[0].length;

   // checking the sum of each row
   for(var i = 0; i < rows;i++){
      var count = 0;
      for(var j =0; j<col; j++) {
         count += mat[i][j];
      }
      if(count != 1){
         console.log("The given matrix is not Markov's Matrix");
         return
      }
   }
   console.log("The given matrix is Markov's Matrix");
}

// defining the matrix1
matrix1 = [[0.5, 0, 0.5], [0.5, 0.25, 0.25], [1, 0.0, 0], [0.33, 0.34, 0.33]]
console.log("For the matrix1: ")
isMarkov(matrix1)

// defining the matrix2
matrix2 = [[0.5, 1, 0.5], [0.5, 0.25, 0.25], [1, 0.0, 0], [0.33, 0.34, 0.33]]
console.log("For the matrix2: ")
isMarkov(matrix2)

Zeitliche und räumliche Komplexität

Im obigen Code durchlaufen wir die Matrix und speichern die Summe jeder Spalte, wodurch die zeitliche Komplexität des obigen Codes O(N*M) wird.

Wir verwenden im obigen Code keinen zusätzlichen Platz, wodurch die Platzkomplexität O(1) wird.

Fazit

In diesem Tutorial haben wir ein JavaScript-Programm für Markov-Matrizen implementiert. Bei einer Markov-Matrix muss die Summe jeder Zeile gleich 1 sein. Wir haben einen Code implementiert, der eine Zufallszahlengenerierungsfunktion verwendet, um eine binäre Markov-Matrix mit O(N*M)-Zeitkomplexität und demselben Raum zu generieren. Zusätzlich haben wir einen Code implementiert, der in O(N*M)-Zeit prüft, ob die aktuelle Matrix eine Markov-Matrix ist.

Das obige ist der detaillierte Inhalt vonJavaScript-Programm für Markov-Matrizen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen