কম্পিউটার

প্রদত্ত ম্যাট্রিক্স Toeplitz নাকি C++ এ নয় তা খুঁজুন


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

Toeplitz ম্যাট্রিক্স তির্যক ম্যাট্রিক্স নামেও পরিচিত একটি ম্যাট্রিক্স যেখানে কর্ণের উপাদানগুলি উপরের-বাম কোণ থেকে নীচে-ডান কোণে শুরু হয়৷

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট:

ম্যাট[][] ={{3, 5, 1},
{4, 3,2},
{1, 2, 3}}

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

ব্যাখ্যা:

তির্যক :(0, 0), (1, 1), (2, 2) একই মান 3।

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

সমস্যা সমাধানের একটি সহজ পদ্ধতি হল একটি তির্যক সূচকে সমস্ত উপাদান পরীক্ষা করা। এই তির্যক মানগুলি হবে সূচক যেখানে 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++ এ নয়

  2. প্রদত্ত ম্যাট্রিক্সটি ম্যাজিক স্কোয়ার নাকি C++ এ নয় তা পরীক্ষা করুন

  3. একটি প্রদত্ত ম্যাট্রিক্স স্পার্স নাকি C++-এ নয় তা পরীক্ষা করুন

  4. প্রদত্ত ম্যাট্রিক্স Toeplitz ম্যাট্রিক্স কি পাইথনে নয় তা পরীক্ষা করার জন্য প্রোগ্রাম