কম্পিউটার

C-তে একটি ম্যাট্রিক্সে দুটি সারিতে উপাদানের যোগফলের সর্বোচ্চ পার্থক্য


আমাদের একটি ম্যাট্রিক্স দেওয়া হয়েছে এবং কাজটি হল একটি ম্যাট্রিক্সের দুটি সারিতে উপাদানগুলির যোগফলের মধ্যে সর্বাধিক পার্থক্য খুঁজে বের করা৷ ধরুন আমাদের একটি ম্যাট্রিক্স M[i,j] আছে i সারি এবং j কলাম সহ। সারিগুলিকে R0 হতে দিন Ri-1 তে . পার্থক্যটি (Ry এর উপাদানগুলির যোগফল বিয়োগ করে গণনা করা হবে) ) - (Rx এর উপাদানগুলির সমষ্টি ), যেখানে x

আসুন এখন বুঝি একটি উদাহরণ ব্যবহার করে আমাদের কী করতে হবে −

ইনপুট

M[4][4] = {
   { 1,2,0,5 },
   {0,1,1,0},
   {7,2,3,2}
   {1,2,4,1}};

আউটপুট

Maximum difference here is : 12

ব্যাখ্যা − এখানে সারি 2-এর উপাদানগুলির যোগফল সর্বাধিক যা 14 এবং সারির উপাদানগুলির যোগফল সর্বনিম্ন, অর্থাৎ 2৷ তাই সর্বাধিক পার্থক্য হল 14-2=12৷

ইনপুট

M[4][4] = {
   { 0,2,0,5 },
   {0,1,4,0},
   {1,2,3,2}
   {2,2,6,0}};

আউটপুট

Maximum difference here is : 5

ব্যাখ্যা − এখানে সারি 4-এর উপাদানগুলির যোগফল সর্বাধিক যা 10 এবং 2 নং সারির উপাদানগুলির যোগফল সর্বনিম্ন, অর্থাৎ 5৷ তাই সর্বাধিক পার্থক্য হল 10-5=10

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • একটি ম্যাট্রিক্সে সারি এবং কলামের সংখ্যার জন্য ইনপুট নিন যাতে কমপক্ষে দুটি সারি থাকে৷

  • rowmaxd() ফাংশনে আমরা ইনপুট ম্যাট্রিক্স পাস করছি এবং এটি সারি গণনা এবং কলাম গণনা এবং সারির যোগফলের সর্বাধিক পার্থক্য প্রদান করছি।

  • এখানে আমরা প্রথমে RSum[i] নামের একটি অ্যারেতে ম্যাট্রিক্স M[row][col]-এর প্রতিটি সারির উপাদানের যোগফল সংরক্ষণ করব। মনে রাখবেন M[row][col]-এ সারির সংখ্যা অনুযায়ী RSum[সারি] এর দৈর্ঘ্য রয়েছে।

  • তারপর আমরা MD কে RSum[1]-RSum[0]-এর মধ্যে সর্বোচ্চ পার্থক্য হিসেবে ধরে নেব। এখানে RSum[0] হল সারি 0-এর সমস্ত উপাদানের যোগফল এবং RSums[1] হল সারির 1-এর সমস্ত উপাদানের যোগফল৷

  • এছাড়াও আমরা ধরে নিচ্ছি যে RSum[0] RSum[সারিতে] সবচেয়ে কম এবং এটিকে MIN ভেরিয়েবলে সংরক্ষণ করছি।

  • 0 থেকে i পর্যন্ত লুপের জন্য আমরা প্রতিটি RSum[সারি] অতিক্রম করব এবং RSum[i]-MIN>MD-এর মধ্যে পার্থক্য তুলনা করব। যদি তাই হয়, এমডি আপডেট করুন। অন্যথায় চেক হল RSum[সারি]

উদাহরণ

#include<stdio.h>
#define MAX 100
//create function to calculate maximum difference between sum of elements of two rows such
that second row appears before the first
int rowmaxd(int M[][MAX], int row, int col){
   //for storing sum of elements of each row
   int RSum[row];
   for(int i=0;i<row;i++){
      int sum=0;
      for(int j=0;j<col;j++)
         sum+=M[i][j];
      RSum[i]=sum;
   }
   //calculate now max difference between two elements of RSum such that in RSum[j]-RSum[i], i<j
   int MD=RSum[1]-RSum[0];
   int MIN=RSum[0];
   for (i = 1; i < row; i++){
      //if this difference is more than MD,the update MD
      if(RSum[i]-MIN>MD)
         MD=RSum[i]-MIN;
      //if this value is even less than MIN,then update MIN
      if(RSum[i]<MIN)
         MIN=RSum[i];
   }
   return MD;
}
// Driver program
int main(){
   int r = 5, c = 4;
   int mat[][MAX] = {
      {-1, 2, 3, 4},
      {6, 3, 0, 1},
      {-1, 7, 8, -3},
      {3, 5, 1, 4},
      {2, 1, 1, 0}};
   cout<<”Maximum difference of sum of elements in two rows in a matrix is: ”<<rowmaxd(mat, r, c);
   return 0;
}

আউটপুট

আমরা উপরের কোডটি চালালে আমরা নিম্নলিখিত আউটপুট পাব −

Maximum difference of sum of elements in two rows in a matrix: 5

  1. পাইথন - ম্যাট্রিক্স সারিতে অনুরূপ উপাদান পরীক্ষা করুন

  2. উপাদানের ধারাবাহিক পার্থক্যের সমষ্টি দ্বারা ম্যাট্রিক্স সারি সাজানোর জন্য পাইথন প্রোগ্রাম

  3. পাইথনে একটি ম্যাট্রিক্সের নির্দিষ্ট উপাদান/সারি যোগ করার জন্য Tensorflow কীভাবে ব্যবহার করা যেতে পারে?

  4. পাইথনে প্রতিটি সারির উপাদান ফ্লিপ করে সর্বাধিক যোগফল খুঁজে বের করার জন্য প্রোগ্রাম