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

C++ का उपयोग करके एक समीकरण को संतुष्ट करने वाले Sextuplets की संख्या ज्ञात कीजिए

इस लेख में, हम एक समीकरण को संतुष्ट करने वाले कई सेक्सटुपलेट्स को खोजने के लिए एक दृष्टिकोण का वर्णन करेंगे। इसलिए हम एक उदाहरण के रूप में एक समीकरण ले रहे हैं जहाँ हमें a, b, c, d, e, और f के मानों को खोजने की आवश्यकता है जो नीचे दिए गए समीकरण को संतुष्ट करते हैं।

( a + b + c ) * e / d = f

आइए समीकरण को फिर से क्रमित करें -

( a + b + c ) = ( f * d ) / e

यहाँ दी गई समस्या के लिए एक सरल उदाहरण है -

Input : arr [ ] = { 1, 3 }
Output : 4
Explanation : ( a, b, c, e, f ) = 1, d = 3
   ( a, b, c, d, e ) = 1, f = 3
   ( a, b, c ) = 1, ( d, e, f ) = 3
   ( a, b, c, d, f ) = 3, ( e ) = 1

Input : arr [ ] = { 2, 5 }
Output : 3

समाधान खोजने के लिए दृष्टिकोण

दी गई समस्या का समाधान खोजने के लिए हम एक Naive दृष्टिकोण का उपयोग करेंगे।

निष्पक्ष दृष्टिकोण

इस समस्या में, एलएचएस और आरएचएस को देखते हुए, हम एलएचएस के सभी संभावित परिणाम पा सकते हैं और एक सरणी में संग्रहीत कर सकते हैं, इसी तरह आरएचएस के लिए एक सरणी बना सकते हैं और इसे आरएचएस के सभी संभावित परिणामों से भर सकते हैं।

एक ही मान के लिए दोनों सरणियों की जाँच करना और पाए गए प्रत्येक मान के लिए गिनती बढ़ाना, और अंत में परिणाम दिखाना।

उदाहरण

#include<bits/stdc++.h>
using namespace std;
int findsamenumbers(int *arr1, int *arr2, int n){
    int i = 0, j = 0, k = 0, count=0;
    while(( i < n*n*n+1) && (j < n*n*n+1)){
        if(arr1[i] < arr2[j])
            i++;
        else if(arr1[i] == arr2[j]){
            count++;
        int temp = arr1[i];
        while(temp==arr1[++i]){
            count++;
        }
        while(temp==arr2[++j]){
            count++;
        }
    }
    else
        j++;
    }  
    return count;
}
int main(){
    int arr[] = {2,5};
    int n = sizeof(arr)/sizeof(arr[0]);
    // Generating all possible values of LHS array
    int index = 0,i;
    int LHS[n*n*n ];
    for ( i = 0; i < n; i++){
        for (int j = 0; j < n; j++){
            for(int k = 0; k < n; k++){
                LHS[index++] = (arr[i] * arr[j]) / arr[k];
            }
        }
    }
    // Generating all possible value of RHS array
    int RHS[n*n*n ];
    index=0;
    for (int i = 0; i < n; i++){
        for (int j = 0; j < n; j++){
            for (int k = 0; k < n; k++){
                RHS[index++] = (arr[i] + arr[j] + arr[k]);
            }
        }
    }
    sort(RHS, RHS + (n*n*n));
    sort(LHS, LHS + (n*n*n));
    int result = findsamenumbers(LHS, RHS, n);
    cout<<"Number of sextuplets that satisfy an equation: "<<result;
    return 0;
}

आउटपुट

Number of sextuplets that satisfy an equation: 3

उपरोक्त कार्यक्रम की व्याख्या

इस कार्यक्रम में, हम एलएचएस और आरएचएस के प्रत्येक परिणाम को रखने के लिए दो सरणियाँ बना रहे हैं। हम एलएचएस में (ए, बी, सी) और आरएचएस में (डी, ई, एफ) के हर संभावित मूल्य को रखने के लिए तीन नेस्टेड लूप का उपयोग कर रहे हैं। उसके बाद, हम दोनों सरणियों की तुलना करने के लिए दोनों सरणियों को छाँट रहे हैं और दोनों सरणियों में समान मान पाते हैं, दोनों सरणियों को findsamenumber() फ़ंक्शन में पास करते हैं।

findsamenumber() फ़ंक्शन में, हम दो नेस्टेड लूप का उपयोग करके समान मानों की जांच करते हैं। जब हमें दो तत्व समान मिलते हैं, तो हम दोनों सरणियों में उस संख्या की आवृत्ति की जांच करते हैं ताकि हर संभव मान गिना जा सके।

if(arr1[i] == arr2[j]){
   count++;
   int temp = arr1[i];
   while(temp==arr1[++i]){
      count++;
   }
   while(temp==arr2[++j]){
      count++;
   }

निष्कर्ष

इस लेख में, हमने दिए गए सरणी में एक समीकरण को संतुष्ट करने वाले सेक्सटुपलेट्स की संख्या को हल किया है। हमने 6 चर समीकरण (a + b + c) * e / d =f में चरों का हर संभव मान पाया। हम इस समस्या को किसी अन्य प्रोग्रामिंग भाषा जैसे सी, जावा और पायथन में हल कर सकते हैं।


  1. C++ का उपयोग करके पंचकोणीय पिरामिड संख्या ज्ञात कीजिए

    एक पंचकोणीय पिरामिड संख्या एक पंचकोणीय आधार पिरामिड में मदों की संख्या के बराबर होती है। नीचे कुछ पंचकोणीय संख्याओं को देखें। N तक पंचकोणीय संख्याओं का योग Nवीं पंचकोणीय पिरामिड संख्या के बराबर होता है। इस लेख में, हम उदाहरण के लिए, Nth पंचकोणीय पिरामिड संख्या खोजने पर चर्चा करेंगे Input : N = 4

  1. C++ का उपयोग करके एक स्ट्रिंग के सबस्ट्रिंग की संख्या ज्ञात करें

    इस लेख में, आप किसी दिए गए स्ट्रिंग में बनाए जा सकने वाले सबस्ट्रिंग (गैर-रिक्त) की संख्या को खोजने के तरीकों के बारे में जानेंगे। Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, &lsqu

  1. C++ . का उपयोग करके स्टॉपिंग स्टेशनों की संख्या ज्ञात कीजिए

    बिंदु X और Y के बीच मध्यवर्ती ट्रेन स्टेशनों की संख्या n है। गिनें कि अलग-अलग तरीकों से ट्रेनों को s स्टेशनों पर रुकने के लिए व्यवस्थित किया जा सकता है जैसे कि कोई भी दो स्टेशन एक दूसरे के बगल में नहीं हैं। तो इस लेख में, हम स्टॉपिंग स्टेशनों की संख्या का पता लगाने के लिए हर संभव तरीके की व्याख्या क