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

C++-এ দেওয়া ম্যাট্রিক্স ট্যাপলিটজ (Toeplitz) কিনা তা খুঁজুন


এই সমস্যায়, আমাদের একটি ২D বর্গ ম্যাট্রিক্স mat[][] দেওয়া আছে আকার n*n। আমাদের কাজ হল ম্যাট্রিক্সটি ট্যাপলিটজ (Toeplitz) কিনা তা খুঁজে বের করা।

ট্যাপলিটজ ম্যাট্রিক্স যাকে ডায়াগোনাল ম্যাট্রিক্সও বলা হয়, এতে উপরের বাম কন্যা থেকে নিচের ডান কন্যা পর্যন্ত ডায়াগোনালের সব এলিমেন্ট একই থাকে।

উদাহরণ দিয়ে বুঝি,

ইনপুট:

          Mat[][] = {{3, 5, 1},
                           {4, 3 ,2},
                           {1, 2, 3}}

আউটপুট: হ্যাঁ

ব্যাখ্যা:  

ডায়াগোনাল: (0, 0), (1, 1), (2, 2) সবগুলো মান ৩।

সমাধানের পদ্ধতি:

সহজ পদ্ধতিতে সব ডায়াগোনাল ইন্ডেক্সের এলিমেন্ট চেক করুন। ডায়াগোনাল মানগুলো হবে সেই ইন্ডেক্স যেখানে i এবং j এর মান একই।

সুতরাং, i = 0 থেকে n এবং j = 0 থেকে n পর্যন্ত চেক করুন। যদি i = j হয় এবং সব mat[i][j] একই থাকে।

সমাধান দর্শানোর প্রোগ্রাম,

উদাহরণ

#include <iostream> 
using namespace std; 
#define N 4 

bool isToeplizMatrix(int mat[N][N]) { 
    int diagVal = mat[0][0]; 
    for(int i = 0; i < N; i++) { 
        if(mat[i][i] != diagVal){ 
            return false; 
        } 
    } 
    return true; 
} 

int main(){ 
    int mat[N][N] = { { 6, 7, 8, 9 }, 
                      { 4, 6, 7, 8 }, 
                      { 1, 4, 6, 7 }, 
                      { 0, 1, 4, 6 }}; 
    if (isToeplizMatrix(mat)) 
        cout << "Matrix is a Toepliz matrix."; 
    else 
        cout << "Matrix is not a Toepliz matrix."; 
    return 0; 
}

আউটপুট

Matrix is a Toepliz matrix.

  1. C++-এ একটি ম্যাট্রিক্স 행켈 (Hankel) কিনা চেক করা

  2. C++-এ দেওয়া ম্যাট্রিক্স ম্যাজিক স্কোয়ার কিনা তা যাচাই করা

  3. C++-এ একটি ম্যাট্রিক্স স্পার্স (sparse) কিনা তা যাচাই করা

  4. পাইথনে টপ্লিট্জ ম্যাট্রিক্স (Toeplitz Matrix) যাচাই করার প্রোগ্রাম