Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ में न्यूनतम उत्पाद ट्रिपल बनाने के तरीकों की गणना करें


हमें संख्याओं की एक सरणी के साथ दिया गया है Arr[]। लक्ष्य उन तीनों की संख्या गिनना है जिनका उत्पाद सभी संभावित ट्रिपल के सबसे छोटे उत्पाद के बराबर है। यदि (i

हम पहले सबसे छोटा उत्पाद ढूंढकर ऐसा करेंगे जहां (i

आइए उदाहरणों से समझते हैं।

इनपुट - गिरफ्तारी [] ={ 1,2,3,2,4,1,5 }

आउटपुट − त्रिगुणों की संख्या − 2

स्पष्टीकरण -

Here minimum product is 2
Triplet 1[ 1,2,3,2,4,1,5 ] → (1,2,1) product=2
Triplet 2 [ 1,2,3,2,4,1,5 ] → (1,2,1) product=2
Number of triplets with product 2 which is minimum is 2.

इनपुट - गिरफ्तारी [] ={ 1,1,2,1,2,2 }

आउटपुट - त्रिकों की संख्या - 1

स्पष्टीकरण -

Here minimum product is 1
Triplet 1 [ 1,1,2,1,2,2 ] → (1,1,1) product=1
Number of triplets with product 1 which is minimum is 1.

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • हम एक पूर्णांक सरणी लेते हैं Arr[] यादृच्छिक संख्याओं के साथ आरंभ किया गया।

  • एक वैरिएबल N लें जो Arr[] की लंबाई को स्टोर करता है।

  • फंक्शन काउंटट्रिपलेट्स(int arr[], int n) एक ऐरे लेता है, इसकी लंबाई इनपुट के रूप में और ट्रिपल देता है जिसका उत्पाद न्यूनतम उत्पाद के बराबर है।

  • ट्रिपल की संख्या के लिए प्रारंभिक चर गणना को 0 के रूप में लें।

  • प्रारंभिक चर उत्पाद को प्रत्येक त्रिक के गुणनफल के रूप में लें। प्रारंभ में 1.

  • प्रारंभिक चर minprod को सभी त्रिगुणों के न्यूनतम संभव उत्पाद के रूप में लें। प्रारंभ में 999.

  • ट्रिपलेट के प्रत्येक तत्व के लिए लूप के लिए तीन का उपयोग करके ट्रैवर्स सरणी।

  • 0<=i

  • उत्पाद की गणना करें =एआर [i] * एआर [जे] * एआर [के]। अगर उत्पाद<=minprod तो उत्पादों के साथ minprod को अपडेट करें।

  • अब मिनप्रोड के पास सभी ट्रिपल के कम से कम उत्पाद का मूल्य है।

  • ट्रिपलेट के प्रत्येक तत्व के लिए लूप के लिए तीन का उपयोग करके फिर से सरणी को पार करें।

  • 0<=i

  • उत्पाद की गणना करें =एआर [i] * एआर [जे] * एआर [के]। अगर ठेस ==मिनप्रोड तो वेतन वृद्धि गिनती। चूंकि इस जोड़ी का उत्पाद न्यूनतम है।

  • सभी लूपों के अंत में काउंट में शर्त को पूरा करने वाले ट्रिपल की कुल संख्या होगी।

  • परिणाम के रूप में गिनती लौटाएं।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int countTriplets(int arr[],int n){
   int count = 0;
   int prod=1;
   int minprod=9999; //making minimum as larger than any product in array
   for (int i = 0; i < n-2; i++){
      for (int j = i+1; j < n-1; j++){
         for (int k = j+1; k < n; k++){
            prod=arr[i]*arr[j]*arr[k];
            if ( prod<=minprod )
               { minprod=prod; }
         }
      }
   }
   // cout<<"minproduct :"<<minprod; //to print minimum product
   for (int i = 0; i < n-2; i++){
      for (int j = i+1; j < n-1; j++){
         for (int k = j+1; k < n; k++){
            prod=arr[i]*arr[j]*arr[k];
            if ( prod==minprod ){
               count++;
               //cout<<endl<<"a :"<<arr[i]<<" b :"<<arr[j]<<" c :"<<arr[k]; //to print
            }
         }
      }
   }
   return count;
}
int main(){
   int Arr[]={ 1,2,3,1,2,6};
   int N=5; //length of array
   cout <<endl<< "Number of triplets : "<<countTriplets(Arr,N);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Number of triplets : 2

  1. C++ में एक सेट को k सबसेट में विभाजित करने के तरीकों की संख्या की गणना करें

    दो अंक e और p दिए गए हैं। लक्ष्य उन तरीकों की संख्या गिनना है जिनसे हम एक सेट के e तत्वों को p विभाजन/सबसेट में विभाजित कर सकते हैं। उदाहरण के लिए इनपुट e=4 p=2 आउटपुट Count of number of ways to partition a set into k subsets are: 7 स्पष्टीकरण If elements are: a b c d then ways to divide them into

  1. C++ में विषम पूर्णांकों के योग के रूप में 'n' को व्यक्त करने के तरीके गिनें

    इनपुट के रूप में एक पूर्णांक n दिया गया है। लक्ष्य उन तरीकों की संख्या ज्ञात करना है जिनसे हम n को विषम पूर्णांकों के योग के रूप में प्रदर्शित कर सकते हैं। उदाहरण के लिए, यदि n 3 है तो इसे योग के रूप में दर्शाया जा सकता है ( 1+1+1 ) और (3) इसलिए कुल 2 तरीके। उदाहरण के लिए इनपुट n=6 आउटपुट Count of

  1. एक क्रमबद्ध डबल लिंक्ड सूची में ट्रिपल गिनें जिसका उत्पाद सी ++ में दिए गए मान x के बराबर है

    पूर्णांक मानों वाली एक क्रमबद्ध डबल लिंक्ड सूची को देखते हुए। लक्ष्य उन त्रिगुणों को खोजना है जिनका गुणनफल दिए गए मान x के बराबर है। यदि इनपुट लिंक्ड सूची 3−4−1−2 है और x 6 है तो गिनती 1 (ट्रिपलेट (3,1,2)) होगी उदाहरण के लिए इनपुट linked list: [ 200−4−16−5−10−10&min