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

सी ++ n चीजों का क्रमपरिवर्तन k चीजों के साथ एक समय में लिया जाता है

n, r, k को देखते हुए, अब हमें यह पता लगाना है कि हम n से r चीजों का चयन कैसे कर सकते हैं ताकि विशिष्ट k चीजें हमेशा एक साथ हों, उदाहरण के लिए।

Input : n = 8, r = 5, k = 2

Output : 960


Input : n = 6, r = 2, k = 2

Output : 2

इस समस्या के लिए हमें थोड़ा ज्ञान चाहिए क्योंकि यह समस्या हमें n और r के क्रमपरिवर्तन को खोजने के लिए कह रही है जैसे कि k चीजें एक साथ आती हैं।

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

हमें इस प्रश्न के लिए अपना सूत्र तैयार करने की आवश्यकता है, और वही हमें हमारा उत्तर देगा।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int fact(int n){ // function to calculate factorial of a number
    if(n <= 1)
        return 1;
    return n * fact(n-1);
}
int npr(int n, int r){ // finding permutation
    int pnr = fact(n) / fact(n - r);
    return pnr;
}
int countPermutations(int n, int r, int k){ // the formula that we came up with
    return fact(k) * (r - k + 1) * npr(n - k, r - k);
}
int main(){
    int n = 8;
    int r = 5;
    int k = 2;
    cout << countPermutations(n, r, k);
    return 0;
}

आउटपुट

960

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

उपरोक्त दृष्टिकोण में, हम अपने उत्तर की गणना के लिए अपना सूत्र तैयार करने का प्रयास करते हैं क्योंकि इस समस्या के लिए हमने जो सूत्र तैयार किया है वह है (k!) * (r - k + 1) * P(n-k, r-k)। ( P(x, y) x से चयन y के क्रमपरिवर्तन की संख्या है) इसलिए हम अपना सूत्र डालते हैं, और हम उत्तर की गणना करते हैं।

निष्कर्ष

इस ट्यूटोरियल में, हम k चीजों के साथ एक समय में r ली गई n चीजों के क्रमपरिवर्तन को खोजने के लिए एक समस्या का समाधान करते हैं। हमने इस समस्या के लिए C++ प्रोग्राम और संपूर्ण दृष्टिकोण (Normal) भी सीखा जिसके द्वारा हमने इस समस्या को हल किया।

हम उसी प्रोग्राम को अन्य भाषाओं जैसे सी, जावा, पायथन और अन्य भाषाओं में लिख सकते हैं। हमें उम्मीद है कि आपको यह ट्यूटोरियल मददगार लगा होगा।


  1. C++ में 0 के रूप में अन्य बाइनरी स्ट्रिंग के साथ XOR वाले चक्रीय क्रमपरिवर्तन की गणना

    हमें दो बाइनरी स्ट्रिंग्स के साथ दिया गया है, मान लें कि str_1 और str_2 जिसमें 1 और 0 का संयोजन है और कार्य सबसे पहले स्ट्रिंग str_1 से संभव विभिन्न क्रमपरिवर्तनों के SET सेट को बनाना है और फिर हम XOR संचालन करेंगे बाइनरी स्ट्रिंग str_2 के साथ सेट में तत्व और फिर जांचें कि एक्सओआर 0 लौटा रहा है या न

  1. सी ++ में उदाहरण के साथ अभिव्यक्ति वृक्ष

    एक्सप्रेशन ट्री एक विशेष प्रकार का बाइनरी ट्री होता है जिसमें ट्री के प्रत्येक नोड में या तो एक ऑपरेटर या ऑपरेंड होता है। लीफ नोड्स पेड़ का एक संचालन . का प्रतिनिधित्व करता है . गैर-पत्ती नोड्स पेड़ का एक ऑपरेटर . का प्रतिनिधित्व करता है । उदाहरण: इंफिक्स एक्सप्रेशन प्राप्त करने के लिए जिस

  1. C++ में 3n स्लाइस के साथ पिज़्ज़ा

    मान लीजिए कि एक पिज्जा है जिसमें अलग-अलग आकार के 3n स्लाइस हैं, मैं और मेरे दो दोस्त पिज्जा के स्लाइस इस प्रकार लेंगे - मैं कोई भी पिज़्ज़ा स्लाइस चुनूंगा। मेरा दोस्त अमल मेरी पसंद की घड़ी की विपरीत दिशा में अगला टुकड़ा उठाएगा। मेरा दोस्त बिमल मेरी पसंद की अगली स्लाइस को दक्षिणावर्त दिशा मे