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

C++-এ একটি ম্যাট্রিক্স সিমেট্রিক কিনা তা যাচাই করার প্রোগ্রাম

লিনিয়ার অ্যালজেব্রা-এ একটি ম্যাট্রিক্স M[][] কে সিমেট্রিক ম্যাট্রিক্স বলা হয় যদি এবং কেবল যদি ম্যাট্রিক্সটির ট্রান্সপোজ ম্যাট্রিক্সটি নিজের সমান হয়। একটি ম্যাট্রিক্সের ট্রান্সপোজ হল যখন আমরা ম্যাট্রিক্সকে এর ডায়াগোনাল ওপর ফ্লিপ করি, ফলে এর রো এবং কলাম ইনডেক্স স্যুইচ হয়।

নিচে সিমেট্রিক ম্যাট্রিক্সের উদাহরণ দেওয়া আছে -

$$\begin{bmatrix} 1 & 4 & 7 \\ 4 & 5 & 6 \\ 7 & 6 & 9 \\ \end {bmatrix} \Rightarrow \begin{bmatrix} 1 & 4 & 7 \\ 4 & 5 & 6 \\ 7 & 6 & 9 \\ \end{bmatrix}$$

উপরের ম্যাট্রিক্সটি সিমেট্রিক ম্যাট্রিক্স। আমরা বাম পাশের ম্যাট্রিক্স নিলাম এবং এর ট্রান্সপোজ করলাম এবং ফলাফলটি একই আসেছে ম্যাট্রিক্সটি নিজের সমান।

উদাহরণ

ইনপুট: arr1[][n] = { { 1, 2, 3 }, { 2, 2, 4 }, { 3, 4, 1 } };
আউটপুট: its a symmetric matrix

ইনপুট: arr1[][n] = { { 1, 7, 3 }, { 2, 9, 5 }, { 4, 6, 8 } };
আউটপুট: its not a symmetric matrix

অ্যাপ্রোচ

আমরা এই ধাপ গুলো ফলো করতে পারি -

  • ১. একটি ম্যাট্রিক্স নাও এবং এর ট্রান্সপোজ অন্য একটি ম্যাট্রিক্স-এ স্টোর করো।
  • ২. ফলাফল ম্যাট্রিক্সটি ইনপুট ম্যাট্রিক্সের সাথে একই কিনা চেক করো।

অ্যালগরিদম

শুরু
    স্টেপ ১ -> #define n 10 ম্যাক্রো ডিফাইন করো
    স্টেপ ২ -> ম্যাট্রিক্সের ট্রান্সপোজ বের করার ফাংশন ডিক্লেয়ার করো
        void transpose(int arr1[][n], int arr2[][n], int a)
        লুপ i = 0 থেকে i < a এবং i++ পর্যন্ত
            লুপ j = 0 থেকে j < a এবং j++ পর্যন্ত
                arr2[i][j] = arr1[j][i] সেট করো
            এন্ড
        এন্ড
    স্টেপ ৩ -> সিমেট্রিক কিনা চেক করার ফাংশন ডিক্লেয়ার করো
        bool check(int arr1[][n], int a)
        ভেরিয়েবল ডিক্লেয়ার করো int arr2[a][n]
        transpose(arr1, arr2, a) কল করো
        লুপ i = 0 থেকে i < a এবং i++ পর্যন্ত
            লুপ j = 0 থেকে j < a এবং j++ পর্যন্ত
                IF (arr1[i][j] != arr2[i][j])
                    return false
                এন্ড
            এন্ড
        এন্ড
        return true
    স্টেপ ৪ -> main()-এ
        ভেরিয়েবল ডিক্লেয়ার করো int arr1[][n] = { { 1, 2, 3 }, { 2, 2, 4 }, { 3, 4, 1 } }
        IF (check(arr1, 3))
            প্রিন্ট its a symmetric matrix
        এলস
            প্রিন্ট its not a symmetric matrix
স্টপ

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

#include <iostream>
#define n 10
using namespace std;

// ম্যাট্রিক্সের ট্রান্সপোজ বের করো
void transpose(int arr1[][n], int arr2[][n], int a) {
    for (int i = 0; i < a; i++)
        for (int j = 0; j < a; j++)
            arr2[i][j] = arr1[j][i];
}

// সিমেট্রিক কিনা চেক করো
bool check(int arr1[][n], int a) {
    int arr2[a][n];
    transpose(arr1, arr2, a);
    for (int i = 0; i < a; i++)
        for (int j = 0; j < a; j++)
            if (arr1[i][j] != arr2[i][j])
                return false;
    return true;
}

int main() {
    int arr1[][n] = { { 1, 2, 3 },
                      { 2, 2, 4 },
                      { 3, 4, 1 } };
    if (check(arr1, 3))
        cout << "its a symmetric matrix";
    else
        cout << "its not a symmetric matrix";
    return 0;
}

আউটপুট

its a symmetric matrix
  1. C++-এ ম্যাট্রিক্স লোয়ার ট্রায়্যাঙ্গুলার কিনা তা যাচাই করার প্রোগ্রাম

  2. C++-এ ইনভোলিউটরি ম্যাট্রিক্স যাচাই করার প্রোগ্রাম

  3. C++-এ আইডেমপটেন্ট ম্যাট্রিক্স যাচাই করার প্রোগ্রাম

  4. C++-এ ডায়াগোনাল এবং স্ক্যালার ম্যাট্রিক্স যাচাই করার প্রোগ্রাম