কম্পিউটার

ম্যাট্রিক্সে N^2 সংখ্যাগুলি এমনভাবে রাখুন যাতে প্রতিটি সারিতে C++ এর সমান যোগফল থাকে


এই সমস্যায়, আমাদের একটি পূর্ণসংখ্যা মান দেওয়া হয়েছে। আমাদের কাজ হল পরিসরের মধ্যে সংখ্যাগুলি প্রিন্ট করা (1, N 2 ) NxN আকারের 2D ম্যাট্রিক্সে এমনভাবে যাতে প্রতিটি সারির যোগফল সমান হয়।

সমস্যাটি বোঝার জন্য একটি উদাহরণ দেওয়া যাক,

ইনপুট − N =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

  1. C++ এ ন্যূনতম যোগফল আছে এমন ট্রি লেভেল খুঁজে বের করার প্রোগ্রাম

  2. আইটেমগুলিকে n^2 অবস্থানে রাখার উপায় যাতে কোনও সারি/কলামে C++-এ একের বেশি না থাকে

  3. প্রতিটি সারি থেকে এমন একটি সংখ্যা নির্বাচন করা যায় কিনা পরীক্ষা করুন যাতে সংখ্যার xor C++ এ শূন্যের চেয়ে বেশি হয়

  4. C++ প্রোগ্রাম অনন্য জোড়া খুঁজে বের করার জন্য যাতে প্রতিটি উপাদান N এর থেকে কম বা সমান হয়