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.
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 -
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 -
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.
// 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)
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).
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 -
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.
// 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)
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.
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!