इस समस्या में, हमें 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.