बाइसिमेट्रिक मैट्रिक्स क्या है?
बाइसिमेट्रिक मैट्रिक्स एक वर्ग मैट्रिक्स है जो दोनों प्रमुख विकर्णों के बारे में सममित होती है। नीचे दी गई मैट्रिक्स बाइसिमेट्रिक मैट्रिक्स का एक उदाहरण है।
1 2 3 4 5 2 6 7 8 4 3 7 9 7 3 4 8 7 6 2 5 4 3 2 1
गुण
- मुख्य विकर्ण के पार सममिति: mat[i][j] == mat[j][i] सभी i,j के लिए
- द्वितीयक विकर्ण के पार सममिति: mat[i][j] == mat[n-j-1][n-i-1] सभी i,j के लिए
एल्गोरिदम
checkBiSymmetric(mat, n):
Begin
for i = 0 to n-1:
for j = 0 to i-1:
if mat[i][j] != mat[j][i]:
return false
done
done
for i = 0 to n-1:
for j = 0 to n-i-1:
if mat[i][j] != mat[n-j-1][n-i-1]:
return false
done
done
return true
End
उदाहरण
#include <iostream>
#define N 5
using namespace std;
int matrix[N][N] = {
{1, 2, 3, 4, 5},
{2, 6, 7, 8, 4},
{3, 7, 9, 7, 3},
{4, 8, 7, 6, 2},
{5, 4, 3, 2, 1}
};
bool checkBiSymmetric() {
// मुख्य विकर्ण के पार सममिति जांचें
for (int i = 0; i < N; i++) {
for (int j = 0; j < i; j++) {
if (matrix[i][j] != matrix[j][i]) {
return false;
}
}
}
// द्वितीयक विकर्ण के पार सममिति जांचें
for (int i = 0; i < N; i++) {
for (int j = 0; j < N - i; j++) {
if (matrix[i][j] != matrix[N - j - 1][N - i - 1]) {
return false;
}
}
}
return true;
}
int main() {
if (checkBiSymmetric()) {
cout << "Yes the matrix is bisymmetric";
} else {
cout << "No the matrix is not bisymmetric";
}
return 0;
}
आउटपुट
Yes the matrix is bisymmetric
संबंधित मैट्रिक्स प्रकार
| प्रकार | शर्त |
|---|---|
| सममित (Symmetric) | A[i][j] == A[j][i] |
| विषम-सममित (Skew-symmetric) | A[i][j] == -A[j][i] |
| बाइसिमेट्रिक (Bisymmetric) | दोनों विकर्णों पर सममित |
| सेंट्रोसममित (Centrosymmetric) | A[i][j] == A[n-1-i][n-1-j] |
| टॉप्लिट्ज़ (Toeplitz) | A[i][j] == A[i+1][j+1] |
समय जटिलता
O(n²) - मैट्रिक्स के सभी तत्वों को जांचने के लिए
स्थान जटिलता
O(1) - अतिरिक्त स्थान नहीं