Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C . में एक मैट्रिक्स में दो पंक्तियों में तत्वों के योग का अधिकतम अंतर


हमें एक मैट्रिक्स दिया गया है और कार्य एक मैट्रिक्स की दो पंक्तियों में तत्वों के योग के बीच सबसे बड़ा अंतर खोजना है। मान लीजिए कि हमारे पास i पंक्तियों और j स्तंभों के साथ एक मैट्रिक्स M[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 है और पंक्ति 1 के तत्वों का योग न्यूनतम है, अर्थात 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 () फ़ंक्शन में हम इनपुट मैट्रिक्स पास कर रहे हैं और यह पंक्ति गणना और कॉलम गिनती है और पंक्तियों के योग का अधिकतम अंतर लौटा रहा है।

  • यहां हम पहले मैट्रिक्स एम [पंक्ति] [कॉल] की प्रत्येक पंक्ति के तत्वों के योग को आरएसम [i] नामक सरणी में संग्रहीत करेंगे। ध्यान दें कि RSum[row] की लंबाई M[row][col] में पंक्तियों की संख्या के अनुसार होती है।

  • तब हम एमडी को RSum[1]-RSum[0] के बीच अधिकतम अंतर मानेंगे। यहाँ RSum[0] पंक्ति 0 के सभी तत्वों का योग है और RSums[1] पंक्ति 1 के सभी तत्वों का योग है।

  • हम यह भी मान रहे हैं कि RSum[0] RSum[row] में सबसे कम है और इसे MIN वैरिएबल में स्टोर कर रहा है।

  • लूप के लिए 0 से i तक हम प्रत्येक RSum [पंक्ति] को पार करेंगे और RSum [i] -MIN> MD के बीच के अंतर की तुलना करेंगे। अगर ऐसा है तो एमडी को अपडेट करें। अन्य जांच RSum[row]

उदाहरण

#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. तत्वों के लगातार अंतर के योग द्वारा मैट्रिक्स पंक्तियों को क्रमबद्ध करने के लिए पायथन कार्यक्रम

    उदाहरण नीचे उसी का एक प्रदर्शन है def diff_summation_elem(row): return sum([abs(row[index + 1] - row[index]) for index in range(0, len(row) - 1)]) my_list = [[97, 6, 47, 3], [6, 88, 3, 26], [71, 53, 34, 65], [15, 36, 5,62]] print("The list is : ") print(my_list) my_list.sort(key=dif

  1. पायथन में मैट्रिक्स के विशिष्ट तत्वों/पंक्तियों को योग करने के लिए टेंसरफ्लो का उपयोग कैसे किया जा सकता है?

    Tensorflow एक मशीन लर्निंग फ्रेमवर्क है जो Google द्वारा प्रदान किया जाता है। यह एक ओपन-सोर्स फ्रेमवर्क है जिसका उपयोग एल्गोरिदम, गहन शिक्षण अनुप्रयोगों और बहुत कुछ को लागू करने के लिए पायथन के साथ संयोजन में किया जाता है। इसका उपयोग अनुसंधान और उत्पादन उद्देश्यों के लिए किया जाता है। इसमें अनुकूलन

  1. पायथन में प्रत्येक पंक्ति तत्वों को फ़्लिप करके अधिकतम योग खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास 2D बाइनरी मैट्रिक्स है। दिए गए मैट्रिक्स में किसी भी पंक्ति या कॉलम के लिए हम सभी बिट्स को फ्लिप कर सकते हैं। यदि हम इनमें से किसी भी संख्या को निष्पादित कर सकते हैं, और यह कि हम प्रत्येक पंक्ति को एक द्विआधारी संख्या के रूप में मानते हैं, तो हमें सबसे बड़ा योग ज्ञात करना होगा