मैट्रिक्स एम [आर] [सी] को 'आर' पंक्तियों की संख्या और 'सी' कॉलम की संख्या के साथ दिया गया है, हमें यह जांचना है कि दिया गया मैट्रिक्स मार्कोव मैट्रिक्स है या नहीं। यदि इनपुट मैट्रिक्स मार्कोव मैट्रिक्स है तो आउटपुट प्रिंट करें "यह एक मार्कोव मैट्रिक्स है" और "यह एक मार्कोव मैट्रिक्स नहीं है" अगर यह मार्कोव मैट्रिक्स नहीं है।
मार्कोव मैट्रिक्स
अब, मार्कोव मैट्रिक्स क्या है? एक मैट्रिक्स एम एक मार्कोव मैट्रिक्स है यदि और केवल तभी जब प्रत्येक पंक्ति का योग केवल 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