In C++ language: An n x n matrix is called a positive Markov matrix, if each ele
ID: 3686860 • Letter: I
Question
In C++ language:
An n x n matrix is called a positive Markov matrix, if each element is positive and the sum of the elements in each column is 1. Write the following function to check whether a matrix is a Markov matrix:
Const int size = 3; Bool isMarkovMatrix(const double m[][size]);
Write a test program that prompts the user to enter a 3 x 3 matrix of double values and tests whether it is a Markov matrix.
Here is the sample runs:
Enter a 3 by 3 matrix row by row:
0.15 0.875 0.375
0.55 0.005 0.225
0.30 0.12 0.4
It is a Markov matrix
Press any key to continue . . .
Explanation / Answer
#include<iostream.h>
#include<stdlib.h>
#define size 3;
Bool isMarkovMatrix(const double m[][size])
{
int i,j,f=0,s=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(m[j][i]<0)
{
f=1;
break;
}
s=s+m[j][i];
}
if(s==1)
{
s=0;
}
else
{
f=1;
break;
}
}
if(f==0)
return true;
else
return false;
}
void main()
{
double a[3][3];
int i,j;
Bool ans;
cout<<"Enter a 3 by 3 matrix row by row";
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
cin>>a[i][j];
}
}
ans=isMarkovMatrix(a);
if(ans)
cout<<"Matrix is Markov";
else
cout<<"Martix is not MArkov";
system("pause");
}