हमें संख्याओं की एक सरणी के साथ दिया गया है Arr[]। लक्ष्य उन तीनों की संख्या गिनना है जिनका उत्पाद सभी संभावित ट्रिपल के सबसे छोटे उत्पाद के बराबर है। यदि (i
हम पहले सबसे छोटा उत्पाद ढूंढकर ऐसा करेंगे जहां (i
आइए उदाहरणों से समझते हैं।
इनपुट - गिरफ्तारी [] ={ 1,2,3,2,4,1,5 }
आउटपुट − त्रिगुणों की संख्या − 2
स्पष्टीकरण -
इनपुट - गिरफ्तारी [] ={ 1,1,2,1,2,2 }
आउटपुट - त्रिकों की संख्या - 1
स्पष्टीकरण -
हम एक पूर्णांक सरणी लेते हैं Arr[] यादृच्छिक संख्याओं के साथ आरंभ किया गया।
एक वैरिएबल N लें जो Arr[] की लंबाई को स्टोर करता है।
फंक्शन काउंटट्रिपलेट्स(int arr[], int n) एक ऐरे लेता है, इसकी लंबाई इनपुट के रूप में और ट्रिपल देता है जिसका उत्पाद न्यूनतम उत्पाद के बराबर है।
ट्रिपल की संख्या के लिए प्रारंभिक चर गणना को 0 के रूप में लें।
प्रारंभिक चर उत्पाद को प्रत्येक त्रिक के गुणनफल के रूप में लें। प्रारंभ में 1.
प्रारंभिक चर minprod को सभी त्रिगुणों के न्यूनतम संभव उत्पाद के रूप में लें। प्रारंभ में 999.
ट्रिपलेट के प्रत्येक तत्व के लिए लूप के लिए तीन का उपयोग करके ट्रैवर्स सरणी।
0<=i
उत्पाद की गणना करें =एआर [i] * एआर [जे] * एआर [के]। अगर उत्पाद<=minprod तो उत्पादों के साथ minprod को अपडेट करें।
अब मिनप्रोड के पास सभी ट्रिपल के कम से कम उत्पाद का मूल्य है।
ट्रिपलेट के प्रत्येक तत्व के लिए लूप के लिए तीन का उपयोग करके फिर से सरणी को पार करें।
0<=i
उत्पाद की गणना करें =एआर [i] * एआर [जे] * एआर [के]। अगर ठेस ==मिनप्रोड तो वेतन वृद्धि गिनती। चूंकि इस जोड़ी का उत्पाद न्यूनतम है।
सभी लूपों के अंत में काउंट में शर्त को पूरा करने वाले ट्रिपल की कुल संख्या होगी।
परिणाम के रूप में गिनती लौटाएं।
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -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.
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.
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
उदाहरण
#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