কম্পিউটার টিউটোরিয়াল

C++-এ মার্কভ 매ট্রিক্স প্রোগ্রাম

একটি ম্যাট্রিক্স M[r][c] দেওয়া আছে 'r' সংখ্যক রো এবং 'c' সংখ্যক কলাম সহ। আমাদের যাচাই করতে হবে যে দিয়ে गये ম্যাট্রিক্সটি মার্কভ ম্যাট্রিক্স কিনা। যদি ইনপুট ম্যাট্রিক্সটি মার্কভ ম্যাট্রিক্স হয় তবে আউটপুট প্রিন্ট করো "It is a Markov matrix" এবং "it's not a Markov matrix" যদি এটি মার্কভ ম্যাট্রিক্স না হয়।

মার্কভ ম্যাট্রিক্স (Markov Matrix)

এখন, মার্কভ ম্যাট্রিক্স কী? একটি ম্যাট্রিক্স M মার্কভ ম্যাট্রিক্স যদি এবং কেবল যদি এর প্রতিটি রোর সমষ্টি শুধু ১ কে সমান হয়।

নিচের উদাহরণে দেখানো আছে -

$$\begin{bmatrix}0.2 & 0.3 & 0.5 \\0.1 & 0.7 & 0.2 \\0.4 & 0.5 & 0.1 \\\end{bmatrix}$$

উপরের উদাহরণে যদি আমরা প্রতিটি রোর সমষ্টি করি -

১ম রোর সমষ্টি = 0.2+0.3+0.5 = 1.0
২য় রোর সমষ্টি = 0.1+0.7+0.2 = 1.0
৩য় রোর সমষ্টি = 0.4+0.5+0.1 = 1.0

এখানে প্রতিটি রোর সমষ্টি ১.০, তাই উপরের ম্যাট্রিক্সটি মার্কভ ম্যাট্রিক্স।

উদাহরণ

ইনপুট: m[][] = { {0.2, 0.3, 0.5} , {0.1, 0.7, 0.2}, {0.4, 0.5, 0.1} }
আউটপুট: It is a Markov matrix

ইনপুট: m[][] = { {0, 0, 1} , {0, 0.7, 0.3}, {0.5, 0.5, 0} }
আউটপুট: It is a Markov matrix

অ্যাপ্রোচ

আমরা আরেকটি ১-ডি ম্যাট্রিক্স বানাব এবং সেখানে প্রতিটি রোর সমষ্টি স্টোর করব। তারপর পুরো অ্যারে ইটারেট করব এবং খুঁজে বের করব অ্যারেতে সব এলিমেন্ট ১ কিনা, যদি ১ হয় তবে দিয়ে गये ম্যাট্রিক্সটি মার্কভ ম্যাট্রিক্স ছিল অন্যথায় ম্যাট্রিক্সটি মার্কভ ম্যাট্রিক্স নয়।

অ্যালগরিদম

শুরু
    স্টেপ ১ -> #define n 3 ম্যাক্রো ডিফাইন করো
    স্টেপ ২ -> মার্কভ ম্যাট্রিক্স চেক করার ফাংশন ডিক্লেয়ার করো
        bool check(double arr[][n])
        লুপ i = 0 থেকে i <n এবং i++ পর্যন্ত
            double sum = 0 ডিক্লেয়ার করো
            লুপ j = 0 থেকে j < n এবং j++ পর্যন্ত
                sum = sum + arr[i][j] সেট করো
            এন্ড
            If (sum != 1)
                return false
            এন্ড
        এন্ড
        Return true
    স্টেপ ৩ -> main()-এ
        double arr[3][3] = { { 0, 0, 1 }, { 0.5, 0, 0.5 }, { 0.9, 0, 0.1 } } ডিক্লেয়ার করো
        IF (check(arr))
            প্রিন্ট its a markov matrix
        এলস
            প্রিন্ট its not a markov matrix
স্টপ

উদাহরণ (C++ কোড)

#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++-এ ইনভোলিউটরি ম্যাট্রিক্স যাচাই করার প্রোগ্রাম

  2. C++-এ পিরামিডের ভলিউম বের করার প্রোগ্রাম

  3. C++-এ কুইকসর্ট (QuickSort) প্রোগ্রাম

  4. C++ প্রোগ্রাম: অ্যাডজেসেন্সি ম্যাট্রিক্স বাস্তবায়ন