इस समस्या में, हमें एक पूर्णांक मान N दिया जाता है। हमारा कार्य सीमा के भीतर संख्याओं को प्रिंट करना है (1, N 2 ) NxN आकार के 2D मैट्रिक्स में इस तरह से कि प्रत्येक पंक्ति के योग तत्व बराबर हों।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट -एन =4
आउटपुट -
1 6 11 16 2 7 12 13 3 8 9 14 4 5 10 15
प्रत्येक पंक्ति में तत्वों का योग 34 है
इस विधि को हल करने के लिए, हमें प्रत्येक तत्व को मैट्रिक्स में इस तरह रखना होगा कि प्रत्येक पंक्ति में कुल बराबर हो। इसके लिए, हम लालची दृष्टिकोण और पंक्ति दर पंक्ति का उपयोग करके योग को समान बनाने के लिए सही तत्वों को जगह देंगे।
इसके लिए, हम शुरू में मैट्रिक्स में सभी तत्वों को फीड करेंगे और फिर एक नया मैट्रिक्स बनाएंगे जिसमें इस सूत्र का उपयोग करके पिछले मैट्रिक्स के तत्व होंगे,
resultMat[i][j] = prevMat[j][(i+j)%n]
उदाहरण
नीचे दिया गया कोड हमारे समाधान के कार्यान्वयन को दर्शाता है,
#include<iostream> using namespace std; int main(){ int n = 4,i,j; cout<<"Matrix of size : "<<n<<" in which sum of elements of all rows is equal is :\n"; int prevMat[n][n], resultMat[n][n] ; int c = 1; for (i = 0; i < n; i++) { for (j = 0; j < n; j++) prevMat[i][j] = c++; } for (i = 0; i < n; i++) { for (<) { resultMat[i][j] = prevMat[j][((i+j)%n)]; } } for (i = 0;i<n;i++) { for (j=0; j<n; j++) { cout<<resultMat[i][j]<<"\t"; } cout<<endl; } }
आउटपुट
Matrix of size : 4 in which sum of elements of all rows is equal is : 1 6 11 16 2 7 12 13 3 8 9 14 4 5 10 15