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

ম্যাট্রিক্স স্পার্স (Sparse Matrix) কিনা চেক করার C++ প্রোগ্রাম


স্পার্স ম্যাট্রিক্স (Sparse Matrix) হলো এমন ম্যাট্রিক্স যেতে অধিকাংশ এলিমেন্ট শূন্য (0) থাকে। নিয়ম: যদি মোট এলিমেন্টের অর্ধেকের চেয়ে বেশি শূন্য থাকে, তবে এটি স্পার্স ম্যাট্রিক্স।

উদাহরণ

ম্যাট্রিক্স:
1 0 2
5 0 0
0 0 9
মোট ৯টি এলিমেন্ট, ৫টি শূন্য → ৫ > ৯/২ → স্পার্স ম্যাট্রিক্স।

উদাহরণ কোড

#include <iostream>
using namespace std;

int main() {
    int a[10][10] = {{2, 0, 0}, {0, 3, 8}, {0, 9, 0}};
    int i, j, count = 0;
    int r = 3, c = 3;

    // Count zeros
    for (i = 0; i < r; ++i)
        for (j = 0; j < c; ++j)
            if (a[i][j] == 0)
                count++;

    // Print matrix
    cout << "ম্যাট্রিক্স:\n";
    for (i = 0; i < r; ++i) {
        for (j = 0; j < c; ++j)
            cout << a[i][j] << " ";
        cout << endl;
    }

    cout << "ম্যাট্রিক্সে " << count << "টি শূন্য আছে\n";

    if (count > ((r * c) / 2))
        cout << "এটি একটি স্পার্স ম্যাট্রিক্স\n";
    else
        cout << "এটি স্পার্স ম্যাট্রিক্স নয়\n";

    return 0;
}

আউটপুট

ম্যাট্রিক্স:
2 0 0
0 3 8
0 9 0
ম্যাট্রিক্সে 5টি শূন্য আছে
এটি একটি স্পার্স ম্যাট্রিক্স

ব্যাখ্যা

  • নেস্টেড লুপ দিয়ে শূন্য কাউন্ট করা হয়।
  • ম্যাট্রিক্স প্রিন্ট করা হয়।
  • শর্ত: count > (r*c)/2 হলে স্পার্স।

অপ্টিমাইজেশন: বড় স্পার্স ম্যাট্রিক্সের জন্য কোশ্ট (COO), CSR, CSC ফরম্যাট ব্যবহার করা হয় মেমরি বাঁচাতে।

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

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

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

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