मैट्रिक्स एम [आर] [सी] को 'आर' पंक्तियों की संख्या और 'सी' कॉलम की संख्या के साथ दिया गया है, हमें यह जांचना है कि दिया गया मैट्रिक्स मार्कोव मैट्रिक्स है या नहीं। यदि इनपुट मैट्रिक्स मार्कोव मैट्रिक्स है तो आउटपुट प्रिंट करें "यह एक मार्कोव मैट्रिक्स है" और "यह एक मार्कोव मैट्रिक्स नहीं है" अगर यह मार्कोव मैट्रिक्स नहीं है।
मार्कोव मैट्रिक्स
अब, मार्कोव मैट्रिक्स क्या है? एक मैट्रिक्स एम एक मार्कोव मैट्रिक्स है यदि और केवल तभी जब प्रत्येक पंक्ति का योग केवल 1 के बराबर हो।
जैसे नीचे दिए गए उदाहरण में -
$$\शुरू{bmatrix}0.2 और 0.3 और 0.5 \\0.1 और 0.7 और 0.2 \\0.4 और 0.5 और 0.1 \\\end{bmatrix}\\$$
उपरोक्त उदाहरण में यदि हम प्रत्येक पंक्ति को जोड़ दें -
1st row sum = 0.2+0.3+0.5 = 1.0 2nd row sum = 0.1+0.7+0.2 = 1.0 3rd row sum = 0.4+0.5+0.1 = 1.0
यहां हर पंक्ति का योग 1.0 है, इसलिए उपरोक्त मैट्रिक्स मार्कोव मैट्रिक्स है।
उदाहरण
Input: m[][] = { {0.2, 0.3, 0.5} ,
{0.1, 0.7, 0.2},
{0.4, 0.5, 0.1}}
Output: It is a Markov matrix
Input: m[][] = { {0, 0, 1} ,
{0, 0.7, 0.3},
{0.5, 0.5, 0}}
Output: It is a Markov matrix दृष्टिकोण
हम एक और 1-डी मैट्रिक्स बनाएंगे और उस मैट्रिक्स में प्रत्येक पंक्ति का योग जमा करेंगे। फिर हम पूरे सरणी को पुनरावृत्त करेंगे और फिर पाएंगे कि सरणी में सभी तत्व 1 हैं या नहीं, यदि 1 है तो दिया गया मैट्रिक्स मार्कोव मैट्रिक्स था अन्यथा मैट्रिक्स मार्कोव मैट्रिक्स नहीं है
एल्गोरिदम
Start
Step 1 -> Define macro as #define n 3
Step 2 -> declare function to check for markov matrix
bool check(double arr[][n])
Loop For int i = 0 and i <n and i++
Declare double sum = 0
Loop For int j = 0 and j < n and j++
Set sum = sum + arr[i][j]
If (sum != 1)
return false
End
End
Return true
Step 3 -> In main ()
Declare double arr[3][3] = { { 0, 0, 1 },
{ 0.5, 0, 0.5 },
{ 0.9, 0, 0.1 } }
If (check(arr))
Print its a markov matrix
Else
Print its not a markov matrix
Stop उदाहरण
#include <iostream>
using namespace std;
#define n 3
//check for markov matrix
bool check(double arr[][n]){
for (int i = 0; i <n; i++){
double sum = 0;
for (int j = 0; j < n; j++)
sum = sum + arr[i][j];
if (sum != 1)
return false;
}
return true;
}
int main(){
double arr[3][3] = { { 0, 0, 1 },
{ 0.5, 0, 0.5 },
{ 0.9, 0, 0.1 } };
if (check(arr))
cout << "its a markov matrix ";
else
cout << "its not a markov matrix ";
} आउटपुट
its a markov matrix