একটি ম্যাট্রিক্স M[r][c] দেওয়া আছে, 'r' নির্দেশ করে রো সংখ্যা এবং 'c' নির্দেশ করে কলাম সংখ্যা যাতে r = c একটি স্কোয়ার ম্যাট্রিক্স বানাচ্ছে। আমাদের খুঁজে বের করতে হবে দেওয়া স্কোয়ার ম্যাট্রিক্সটি ডায়াগোনাল এবং স্ক্যালার ম্যাট্রিক্স কিনা। যদি এটি ডায়াগোনাল এবং স্ক্যালার ম্যাট্রিক্স হয় তবে আউটপুট-এ yes প্রিন্ট করো।
ডায়াগোনাল ম্যাট্রিক্স (Diagonal Matrix)
একটি স্কোয়ার ম্যাট্রিক্স m[][] ডায়াগোনাল ম্যাট্রিক্স হবে যদি এবং কেবল যদি মেইন ডায়াগোনাল ছাড়া বাকি সব এলিমেন্ট শূন্য হয়।
নিচের ফিগার-এ দেখানো আছে -

এখানে, লাল রঙের এলিমেন্ট গুলো মেইন ডায়াগোনাল যা নন-জিরো বাকি এলিমেন্ট গুলো মেইন ডায়াগোনাল ছাড়া শূন্য তাই এটি একটি ডায়াগোনাল ম্যাট্রিক্স।
উদাহরণ
ইনপুট: m[3][3] = { {7, 0, 0}, {0, 8, 0}, {0, 0, 9} }
আউটপুট: yes
ইনপুট: m[3][3] = { {1, 2, 3}, {0, 4, 0}, {0, 0, 5} }
আউটপুট: no
অ্যালগরিদম
শুরু
স্টেপ ১ -> size 4 ম্যাক্রো ডিফাইন করো
স্টেপ ২ -> ম্যাট্রিক্স ডায়াগোনাল কিনা চেক করার ফাংশন ডিক্লেয়ার করো
bool ifdiagonal(int arr[size][size])
লুপ i = 0 থেকে i < size এবং i++ পর্যন্ত
লুপ j = 0 থেকে j < size এবং j++ পর্যন্ত
IF ((i != j) && (arr[i][j] != 0))
return false
এন্ড
এন্ড
এন্ড
return true
স্টেপ ৩ -> main()-এ
int arr[size][size] = { { 1, 0, 0, 0 }, { 0, 1, 0, 0 }, { 0, 0, 1, 0 }, { 0, 0, 0, 1 } } ডিক্লেয়ার এবং সেট করো
IF (ifdiagonal(arr))
প্রিন্ট its a diagonal matrix
এন্ড
এলস
প্রিন্ট its not a diagonal matrix
এন্ড
স্টপ
ডায়াগোনাল ম্যাট্রিক্স
উদাহরণ (C++ কোড)
#include <bits/stdc++.h>
#define size 4
using namespace std;
// ম্যাট্রিক্স ডায়াগোনাল ম্যাট্রিক্স কিনা চেক করো
bool ifdiagonal(int arr[size][size]) {
for (int i = 0; i < size; i++)
for (int j = 0; j < size; j++)
if ((i != j) && (arr[i][j] != 0))
return false;
return true;
}
int main() {
int arr[size][size] = { { 1, 0, 0, 0 },
{ 0, 1, 0, 0 },
{ 0, 0, 1, 0 },
{ 0, 0, 0, 1 } };
if (ifdiagonal(arr))
cout << "its a diagonal matrix" << endl;
else
cout << "its not a diagonal matrix" << endl;
return 0;
}
আউটপুট
its a diagonal matrix
স্ক্যালার ম্যাট্রিক্স (Scalar Matrix)
একটি স্কোয়ার ম্যাট্রিক্স m[][] স্ক্যালার ম্যাট্রিক্স যদি মেইন ডায়াগোনাল-এ এলিমেন্ট গুলো সমান থাকে এবং বাকি এলিমেন্ট গুলো শূন্য থাকে।
নিচের উদাহরণে দেখানো আছে -

এখানে, লাল রঙের এলিমেন্ট গুলো ডায়াগোনাল এলিমেন্ট গুলো যা একই এবং বাকি এলিমেন্ট গুলো শূন্য তাই এটি একটি স্ক্যালার ম্যাট্রিক্স।
উদাহরণ
ইনপুট: m[3][3] = { {2, 0, 0}, {0, 2, 0}, {0, 0, 2} }
আউটপুট: yes
ইনপুট: m[3][3] = { {3, 0, 0}, {0, 2, 0}, {0, 0, 3} }
আউটপুট: no
অ্যালগরিদম
শুরু
স্টেপ ১ -> #define size 4 ম্যাক্রো ডিক্লেয়ার করো
স্টেপ ২ -> ম্যাট্রিক্স স্ক্যালার ম্যাট্রিক্স কিনা চেক করার ফাংশন ডিক্লেয়ার করো
bool scalar(int arr[size][size])
লুপ i = 0 থেকে i < size এবং i++ পর্যন্ত
লুপ j = 0 থেকে j < size এবং j++ পর্যন্ত
IF ((i != j) && (arr[i][j] != 0))
return false
এন্ড
এন্ড
এন্ড
লুপ i = 0 থেকে i < size - 1 এবং i++ পর্যন্ত
If (arr[i][i] != arr[i + 1][i + 1])
return false
এন্ড
এন্ড
Return true
স্টেপ ৩ -> main()-এ
অ্যারে ডিক্লেয়ার করো int arr[size][size] = { { 2, 0, 0, 0 }, { 0, 2, 0, 0 }, { 0, 0, 2, 0 }, { 0, 0, 0, 2 } }
IF(scalar(arr))
প্রিন্ট its a scalar matrix
এলস
প্রিন্ট its not a scalar matrix
স্টপ
উদাহরণ (C++ কোড)
#include <bits/stdc++.h>
#define size 4
using namespace std;
// ম্যাট্রিক্স স্ক্যালার ম্যাট্রিক্স কিনা চেক করো
bool scalar(int arr[size][size]) {
for (int i = 0; i < size; i++)
for (int j = 0; j < size; j++)
if ((i != j) && (arr[i][j] != 0))
return false;
for (int i = 0; i < size - 1; i++)
if (arr[i][i] != arr[i + 1][i + 1])
return false;
return true;
}
int main() {
int arr[size][size] = { { 2, 0, 0, 0 },
{ 0, 2, 0, 0 },
{ 0, 0, 2, 0 },
{ 0, 0, 0, 2 } };
if (scalar(arr))
cout << "its a scalar matrix" << endl;
else
cout << "its not a scalar matrix" << endl;
return 0;
}
আউটপুট
its a scalar matrix