'r' संख्या में पंक्तियों और 'c' संख्या में कॉलम के साथ एक मैट्रिक्स M[r][c] दिया गया है, हमें जांचना है कि दी गई मैट्रिक्स मार्कोव मैट्रिक्स है या नहीं। यदि इनपुट मैट्रिक्स मार्कोव मैट्रिक्स है तो आउटपुट प्रिंट करें "It is a Markov matrix" और "it's not a Markov matrix" यदि यह मार्कोव मैट्रिक्स नहीं है।
मार्कोव मैट्रिक्स
अब, मार्कोव मैट्रिक्स क्या है? एक मैट्रिक्स M मार्कोव मैट्रिक्स है यदि और केवल यदि उसकी प्रत्येक पंक्ति का योग केवल 1 के बराबर हो।
नीचे दिए गए उदाहरण की तरह -
$$\begin{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 है, इसलिए उपरोक्त मैट्रिक्स मार्कोव मैट्रिक्स है।
उदाहरण
इनपुट: m[][] = { {0.2, 0.3, 0.5} , {0.1, 0.7, 0.2}, {0.4, 0.5, 0.1}} आउटपुट: यह एक मार्कोव मैट्रिक्स है इनपुट: m[][] = { {0, 0, 1} , {0, 0.7, 0.3}, {0.5, 0.5, 0}} आउटपुट: यह एक मार्कोव मैट्रिक्स है दृष्टिकोण
हम एक और 1-d मैट्रिक्स बनाएंगे और उसमें प्रत्येक पंक्ति का योग स्टोर करेंगे। फिर हम पूरे ऐरे पर इटरेट करेंगे और फिर पता लगाएंगे कि ऐरे में सभी एलिमेंट्स 1 हैं या नहीं, यदि 1 हैं तो दी गई मैट्रिक्स मार्कोव मैट्रिक्स थी अन्यथा मैट्रिक्स मार्कोव मैट्रिक्स नहीं है
एल्गोरिदम
Start Step 1 -> मैक्रो डिफाइन करें #define n 3 Step 2 -> मार्कोव मैट्रिक्स के लिए जांचने का फंक्शन डिक्लेयर करें bool check(double arr[][n]) Loop int i = 0 से i <n और i++ तक double sum = 0 डिक्लेयर करें Loop int j = 0 से j < n और j++ तक sum = sum + arr[i][j] सेट करें If (sum != 1) return false End End Return true Step 3 -> main () में double arr[3][3] = { { 0, 0, 1 }, { 0.5, 0, 0.5 }, { 0.9, 0, 0.1 } } डिक्लेयर करें If (check(arr)) यह एक मार्कोव मैट्रिक्स है प्रिंट करें Else यह मार्कोव मैट्रिक्स नहीं है प्रिंट करें Stopउदाहरण
#include <iostream> using namespace std; #define n 3 //मार्कोव मैट्रिक्स के लिए जांचें 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