এই সমস্যায়, আমাদেরকে 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.