C++程序 用于Markov矩阵

C++程序 用于Markov矩阵

给定一个m x n的2D矩阵,检查它是否是Markov矩阵。

Markov矩阵: 每行总和等于1的矩阵。

C++程序 用于Markov矩阵

Markov矩阵的示例

例子:

输入 :
1 0 0
0.5 0 0.5
0 0 1
输出: yes

说明:
每行之和等于1,
因此它是Markov矩阵。

输入:
1 0 0
0 0 2
1 0 0
输出:
no

做法: 初始化一个2D数组,然后取另一个单一的一维数组来存储矩阵每行的和,检查存储在这个1D数组中的所有和是否都等于1,如果是,则为Markov矩阵而否则不是。

// C ++代码来检查Markov矩阵
#include <iostream>
using namespace std;
 
#define n 3
 
bool checkMarkov(double m[][n])
{
    //外部循环访问行
    //内部访问列
    for (int i = 0; i <n; i++) {
 
        //找到当前行的和
        double sum = 0;
        for (int j = 0; j < n; j++)
            sum = sum + m[i][j];
 
        if (sum!= 1)
            返回false;
    }
 
    返回true;
}
 
// Driver Code
int main()
{
    //待检查矩阵
    double m [3] [3] = {{0,0,1},
                        {0.5,0,0.5},
                        {1,0,0}};
 
    //调用函数check()
    if(checkMarkov(m))
        cout << " yes ";
    else
        cout << " no ";
} 

输出:

yes

时间复杂度: O(m*n), 这里,m是行数,n是列数。

辅助空间: O(1), 因为使用了恒定的额外空间。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例