📜  马尔可夫矩阵程序

📅  最后修改于: 2022-05-13 01:57:21.805000             🧑  作者: Mango

马尔可夫矩阵程序

给定 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,如果是则为马尔可夫矩阵,否则不是。

C++
// C++ code to check Markov Matrix
#include 
using namespace std;
 
#define n 3
 
bool checkMarkov(double m[][n])
{
    // outer loop to access rows
    // and inner to access columns
    for (int i = 0; i 


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 ");
    }
}


Python3
# Python 3 code to check Markov Matrix
 
def checkMarkov(m) :
     
    # Outer loop to access rows
    # and inner to access columns
    for i in range(0, len(m)) :
         
        # Find sum of current row
        sm = 0
        for j in range(0, len(m[i])) :
            sm = sm + m[i][j]
 
        if (sm != 1) :
            return False
             
    return True
     
# Matrix to check
m = [ [ 0, 0, 1 ],
      [ 0.5, 0, 0.5 ],
      [ 1, 0, 0 ]      ]
 
# Calls the function check()
if (checkMarkov(m)) :
    print(" yes ")
else :
    print(" no ")
     
     
# This code is contributed by Nikita Tiwari.


C#
// C# code to check
// Markov Matrix
using System;
 
class GFG
{
static bool checkMarkov(double [,]m)
{
    // outer loop to access
    // rows and inner to
    // access columns
    for (int i = 0;
             i < m.GetLength(0); i++)
    {
 
        // Find sum of
        // current row
        double sum = 0;
        for (int j = 0;
                 j < m.GetLength(1); j++)
            sum = sum + m[i, j];
 
        if (sum != 1)
        return false;
    }
 
    return true;
}
 
// Driver Code
static void Main()
{
    // Matrix to check
    double [,]m = new double[,]{{ 0, 0, 1},
                                {0.5, 0, 0.5},
                                {1, 0, 0}};
 
    // calls the
    // function check()
    if (checkMarkov(m))
        Console.WriteLine(" yes ");
    else
        Console.WriteLine(" no ");
}
}
 
// This code is contributed by
// Manish Shaw(manishshaw1)


PHP


Javascript


输出 :

yes