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

C++ में मार्कोव मैट्रिक्स के लिए कार्यक्रम

मैट्रिक्स एम [आर] [सी] को 'आर' पंक्तियों की संख्या और 'सी' कॉलम की संख्या के साथ दिया गया है, हमें यह जांचना है कि दिया गया मैट्रिक्स मार्कोव मैट्रिक्स है या नहीं। यदि इनपुट मैट्रिक्स मार्कोव मैट्रिक्स है तो आउटपुट प्रिंट करें "यह एक मार्कोव मैट्रिक्स है" और "यह एक मार्कोव मैट्रिक्स नहीं है" अगर यह मार्कोव मैट्रिक्स नहीं है।

मार्कोव मैट्रिक्स

अब, मार्कोव मैट्रिक्स क्या है? एक मैट्रिक्स एम एक मार्कोव मैट्रिक्स है यदि और केवल तभी जब प्रत्येक पंक्ति का योग केवल 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

  1. सी++ में पिरामिड के आयतन के लिए कार्यक्रम

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

  1. QuickSort के लिए C++ प्रोग्राम?

    क्विकसॉर्ट एक छँटाई तकनीक है जो एक क्रमबद्ध सूची (सरणी) को क्रमबद्ध करने के लिए तुलना का उपयोग करती है। Quicksort को पार्टीशन एक्सचेंज सॉर्ट के रूप में भी जाना जाता है। यह एक स्थिर प्रकार नहीं है, क्योंकि समान प्रकार की वस्तुओं का सापेक्ष क्रम संरक्षित नहीं है। क्विकसॉर्ट एक सरणी पर काम कर सकता है,

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

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