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

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

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

समस्या को हल करने के तरीके

आइए एक उदाहरण लेते हैं कि आठ मध्यवर्ती स्टेशन हैं और हमें तीन मध्यवर्ती स्टेशनों पर ट्रेनों को रोकने के तरीके खोजने होंगे।

n = 8, s = 3

हमारे पास (n - s) हैं, यानी, पांच स्टेशन बचे हैं जिन पर ट्रेन नहीं रुक सकती,

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

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

6c3= [fact(6) - fact(3)] / fact(3) = 6 * 5 * 4 / 3 * 2 * 1 = 20

बिंदु X और Y से तीन स्टॉपिंग स्टेशनों को व्यवस्थित करने के 20 तरीके हैं। तो यहाँ उदाहरण है -

Input : n = 15 s = 4
Output : 495
Input : n = 8 s = 3
Output : 20

उदाहरण

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n = 8, s = 3;
    int flag1 = 1, flag2 = 1, temp = s, ans;
    // selecting 's' positions out of 'n-s+1'
    int x = n - s + 1;
    while (x != (n - 2 * s + 1)) {
       flag1 = flag1 * x;
       x--;
    }
    while (temp != 1) {
       flag2 = flag2 * temp;
       temp--;
    }
    ans = flag1 / flag2;
    if ((n - s + 1) >= s)
       cout << "Number of ways : " << ans;
    else
       cout << "not possible to find";
    return 0;
}

आउटपुट

Number of ways : 20

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

इस C++ कोड को समझने के लिए, हम समाधान को चरणों में विभाजित कर सकते हैं।

  • n . में स्टेशनों की संख्या लेना और इनपुट के रूप में स्टेशनों को s में रोकना।

  • फ्लैग1 और फ्लैग 2 वेरिएबल्स को 1 से शुरू करना और s के मान को एक टेम्प वेरिएबल में स्टोर करना।

  • फ्लैग1 की गणना करना जो अंश है [तथ्य(एन) - तथ्य(आर)]।

  • फ्लैग 2 की गणना करना जो कि हर है [तथ्य (आर)]

  • मुद्रण परिणाम।

निष्कर्ष

इस लेख में, हम एक समस्या का समाधान करते हैं ताकि पता लगाया जा सके कि मध्यवर्ती स्टेशनों पर ट्रेनों को कितने तरीकों से रोका जा सकता है ताकि कोई भी दो स्टेशन लगातार न हों। हमने इस समस्या के लिए C++ प्रोग्राम और पूरा तरीका भी सीखा जिसके द्वारा हमने इस समस्या को हल किया। हम उसी प्रोग्राम को अन्य भाषाओं जैसे C, java, python, और अन्य भाषाओं में लिख सकते हैं।


  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++ का उपयोग करके सेट पर रिफ्लेक्सिव रिलेशंस की संख्या ज्ञात करें

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