Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में मार्कोव मैट्रिक्स प्रोग्राम


'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

  1. C++ में पिरामिड के आयतन का प्रोग्राम C++ में पिरामिड के आयतन का प्रोग्राम

    पिरामिड के बेस के प्रकार के आधार पर भुजाएं दी गई हैं, कार्य पिरामिड का आयतन गणना करना है।पिरामिड एक 3-D आकृति है जिसकी बाहरी सतहें त्रिकोणीय हैं जो सामान्य बिंदु पर मिलती हैं जिससे पिरामिड का तीक्ष्ण किनारा बनता है। पिरामिड का आयतन उसके बेस के प्रकार पर निर्भर करता है।पिरामिड के बेस के विभिन्न प्रका

  1. C++ में क्विकसॉर्ट प्रोग्राम C++ में क्विकसॉर्ट प्रोग्राम

    क्विकसॉर्ट क्या है? क्विकसॉर्ट एक सॉर्टिंग तकनीक है जो अनसॉर्टेड सूची (सरणी) को सॉर्ट करने के लिए तुलनाओं का उपयोग करती है। क्विकसॉर्ट को पार्टीशन एक्सचेंज सॉर्ट के नाम से भी जाना जाता है। यह एक स्थिर सॉर्ट नहीं है, क्योंकि समान सॉर्ट आइटम्स का सापेक्ष क्रम संरक्षित नहीं रहता। क्विकसॉर्ट एक सरणी प

  1. C++ प्रोग्राम: एडजेसेंसी मैट्रिक्स इम्प्लीमेंट करना C++ प्रोग्राम: एडजेसेंसी मैट्रिक्स इम्प्लीमेंट करना

    एक ग्राफ का एडजेसेंसी मैट्रिक्स V x V आकार का एक वर्ग मैट्रिक्स होता है। V ग्राफ G के वर्टेक्स की संख्या है। इस मैट्रिक्स में प्रत्येक तरफ V वर्टेक्स मार्क किए जाते हैं। यदि ग्राफ में i से j वर्टेक्स तक कुछ एज हैं, तो एडजेसेंसी मैट्रिक्स में i-वीं पंक्ति और j-वें कॉलम में 1 होगा (या वेटेड ग्राफ के