您好,欢迎访问一九零五行业门户网

马尔可夫矩阵的 JavaScript 程序

矩阵是一种二维数组,它具有一定的行数,每行有相同的列数,通过行数和列数可以得到元素在任何特定的索引。对于马尔可夫矩阵,每一行的和必须等于 1。我们将实现一个代码来创建一个新的马尔可夫矩阵,并查找当前给定的矩阵是否是马尔可夫矩阵。
问题简介在给定的问题中,我们必须编写一个代码,通过使用二进制数据来生成马尔可夫矩阵,即仅使用零和一,因为我们知道马尔可夫矩阵是其中行的总和必须的矩阵等于 1(这并不意味着它仅由二进制数组成),这意味着每一行中都会有一个 1,其他元素为零。
我们将实现的程序只是马尔可夫矩阵的一个特例。
对于第二个代码,我们将得到一个矩阵,并且必须查找当前矩阵是否是马尔可夫矩阵。让我们看看这两个代码 -
创建马尔可夫矩阵在当前部分中,我们使用 0 和 1 的二进制数字来创建马尔可夫矩阵。让我们先看看方法,然后我们将转向代码实现 -
方法在此代码中,我们将使用 new 关键字和数组创建一个矩阵。对于数组的每个索引,我们将再次创建一个数组来填充它。
对于矩阵的每一行,使用随机函数,我们将得到列数范围内的随机数,并将当前行的该列填充为 1,其他填充为 0。
最后我们将返回矩阵。
示例// creating a markov's matrix using binary digits// defining the rows and columnsvar row = 4var col = 5function 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 functionmarkovmat(row,col)
时间和空间复杂度在上面的代码中,我们已经移动了完整的矩阵,并且对于每次移动或遍历,我们每次都得到随机数,这需要恒定的时间。因此,上述代码的时间复杂度为 o(n*m),其中 n 是行数,m 是列数。
空间复杂度正好等于矩阵的大小,并且我们没有使用任何额外的空间。所以,上述代码的空间复杂度为o(n*m)。
检查当前矩阵是否为马尔可夫在当前部分中,我们给定一个矩阵,并且必须查找当前矩阵是否是马尔可夫矩阵。让我们先看看方法,然后我们将转向代码实现 -
方法在此代码中,我们将简单地遍历矩阵并为每一行获取其计数。如果当前行的计数为 1,则我们移动到下一行,否则我们将返回当前矩阵不是马尔可夫矩阵。
示例// function to check whether the current matrix is// markov or notfunction 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 matrix1matrix1 = [[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 matrix2matrix2 = [[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)
时间和空间复杂度在上面的代码中,我们遍历了矩阵并存储了每一列的和,使得上面代码的时间复杂度为o(n*m)。
上面的代码中我们没有使用任何额外的空间,使空间复杂度为o(1)。
结论在本教程中,我们实现了马尔可夫矩阵的 javascript 程序。对于马尔可夫矩阵,每一行的和必须等于 1。我们实现了一个代码,使用随机数生成函数以 o(n*m) 的时间复杂度和相同的空间生成二进制马尔可夫矩阵。此外,我们还实现了一个代码,可以在 o(n*m) 时间内检查当前矩阵是否为马尔可夫矩阵。
以上就是马尔可夫矩阵的 javascript 程序的详细内容。
其它类似信息

推荐信息