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

C++ . का प्रयोग करके समीकरण x + y + z <=n के हलों की संख्या ज्ञात कीजिए

इस लेख में, हम समीकरण x+y+z<=n के समाधान की संख्या खोजने के तरीकों की व्याख्या करेंगे। इस समस्या में, हमारे पास चार चर के साथ एक समीकरण है, और कार्य दिए गए समीकरण का हल खोजना है। तो यहाँ एक सरल उदाहरण है &miuns;

Input: X = 1, Y = 1, Z = 1, n = 1

Output: 4

Input: X = 1, Y = 2, Z = 3, n = 4

Output: 3

इस समस्या में, हम बस (x, y), (y,z), (x,z) के सभी मानों के माध्यम से जा सकते हैं, प्रत्येक चर को अलग करके और जाँच कर सकते हैं कि यह समीकरण को संतुष्ट करता है या नहीं।

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

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

क्रूर फ़ोर्स

इस कार्यक्रम में हम (x,y), (y,z) और (x,z) के सभी संभावित मानों का अध्ययन करने जा रहे हैं जैसे कि यह समीकरण z <=n - x - y को संतुष्ट करता है (यहाँ z अलग है ) जहां 0 <=z <=Z (और अन्य अलग-अलग चर के लिए समान)।

उदाहरण


#include<bits/stdc++.h>
using namespace std;
int main(){
    int X = 1, Y = 2, Z = 3, n = 4; // limits of x, y, z and given n.
    int answer = 0; // counter variable.
    for(int i = 0; i <= X; i++){
        for(int j = 0; j <= Y; j++){
            int temp = (n - i) - j; // temp = n - x - y.
            if(temp >= Z){ // if n - x - y >= z so we increment the answer.
               answer++;
            }
        }
    }
    for(int i = 0; i <= X; i++){
        for(int j = 0; j <= Z; j++){
            int temp = (n - i) - j; // temp = n - x - y.
            if(temp >= Y){ // if n - x - y >= z so we increment the answer.
               answer++;
            }
        }
    }
    for(int i = 0; i <= Z; i++){
        for(int j = 0; j <= Y; j++){
            int temp = (n - i) - j; // temp = n - x - y.
            if(temp >= X){ // if n - x - y >= z so we increment the answer.
               answer++;
            }
        }
    }
    cout << answer << "\n";
}

आउटपुट

17

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

इस कार्यक्रम में, हम लूप के लिए नेस्टेड का उपयोग करके (x,y), (y, z), (x,z) के सभी संयोजनों के माध्यम से जाने वाले हैं और समीकरण की जांच करते हैं कि यह समीकरण को संतुष्ट करता है या नहीं और यदि यह तब संतुष्ट होते हैं, हम उत्तर बढ़ाते हैं।

निष्कर्ष

इस लेख में, हम O(X*Y) में समीकरण x + y + z<=n को संतुष्ट करने वाले समाधानों की संख्या खोजने में समस्या का समाधान करते हैं समय जटिलता। हमने इस समस्या के लिए C++ प्रोग्राम और पूरा तरीका भी सीखा जिसके द्वारा हमने इस समस्या को हल किया। हम उसी प्रोग्राम को अन्य भाषाओं जैसे C, java, python, और अन्य भाषाओं में लिख सकते हैं।


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

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

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

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

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

    इस लेख में, हम एक सेट पर रिफ्लेक्सिव संबंधों की संख्या को खोजने के तरीकों की व्याख्या करेंगे। इस समस्या में, हमें संख्या n दी गई है, और n प्राकृत संख्याओं के समुच्चय पर, हमें प्रतिवर्ती संबंधों की संख्या निर्धारित करनी होगी। चिंतनशील संबंध − समुच्चय A में एक संबंध प्रतिवर्ती कहलाता है यदि (a, a) R