马尔可夫矩阵的Java程序
给定 amxn 二维矩阵,检查它是否是马尔可夫矩阵。
马尔可夫矩阵:每行之和等于 1 的矩阵。
例子:
Input :
1 0 0
0.5 0 0.5
0 0 1
Output : yes
Explanation :
Sum of each row results to 1,
therefore it is a Markov Matrix.
Input :
1 0 0
0 0 2
1 0 0
Output :
no
方法:初始化一个二维数组,然后取另一个一维数组来存储矩阵每一行的和,检查这个一维数组中存储的和是否都等于1,如果是则为马尔可夫矩阵,否则不是。
Java
// Java code to check Markov Matrix
import java.io.*;
public class markov
{
static boolean checkMarkov(double m[][])
{
// outer loop to access rows
// and inner to access columns
for (int i = 0; i < m.length; i++) {
// Find sum of current row
double sum = 0;
for (int j = 0; j < m[i].length; j++)
sum = sum + m[i][j];
if (sum != 1)
return false;
}
return true;
}
public static void main(String args[])
{
// Matrix to check
double m[][] = { { 0, 0, 1 },
{ 0.5, 0, 0.5 },
{ 1, 0, 0 } };
// calls the function check()
if (checkMarkov(m))
System.out.println(" yes ");
else
System.out.println(" no ");
}
}
输出 :
yes
有关详细信息,请参阅有关马尔可夫矩阵程序的完整文章!