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) भी सीखा जिसके द्वारा हमने इस समस्या को हल किया।
हम उसी प्रोग्राम को अन्य भाषाओं जैसे सी, जावा, पायथन और अन्य भाषाओं में लिख सकते हैं। हमें उम्मीद है कि आपको यह ट्यूटोरियल मददगार लगा होगा।