समस्या कथन − n स्टेशनों में से r स्टेशनों पर ट्रेन के रुकने के तरीकों की संख्या ढूंढने का प्रोग्राम ताकि कोई दो रुकने वाले स्टेशन लगातार न हों।
समस्या व्याख्या
यह प्रोग्राम उन तरीकों की संख्या यानी क्रमचय की गणना करेगा जिनमें ट्रेन रुकेगी। यहां, ट्रेन बिंदु X से Y तक यात्रा करेगी। इन बिंदुओं के बीच n स्टेशन हैं। ट्रेन इन n स्टेशनों में से r स्टेशनों पर रुकेगी, इस शर्त के साथ कि r स्टेशनों पर रुकते समय ट्रेन दो लगातार स्टेशनों पर नहीं रुकनी चाहिए।
इस क्रमचय को सीधे nPr सूत्र का उपयोग करके ढूंढा जा सकता है।
आइए कुछ उदाहरण लेते हैं,
इनपुट: n = 16, r = 6 आउटपुट: 462
व्याख्या − ट्रेन के 16 स्टॉप में से 6 स्टॉप पर रुकने के तरीकों की संख्या, शर्त को पूरा करते हुए, क्रमचय सूत्र का उपयोग करके निकाली जाती है:
nPr या p(n, r) = n! / (n-r)!
एल्गोरिदम
इनपुट: स्टेशनों की कुल संख्या n और स्टेशन जिन पर ट्रेन रुक सकती है r। चरण 1: n और r के मानों के लिए p(n,r) = n! / (n-r)! का मान निकालें चरण 2: मानक प्रिंट मेथड का उपयोग करके p(n,r) का मान प्रिंट करें।
उदाहरण
#include <stdio.h>
int main(){
int n = 16, s = 6;
printf("Total number of stations = %d\nNumber of stopping station = %d\n", n, s);
int p = s;
int num = 1, dem = 1;
while (p != 1) {
dem *= p;
p--;
}
int t = n - s + 1;
while (t != (n - 2*s + 1)) {
num *= t;
t--;
}
if ((n - s + 1) >= s)
printf("Possible ways = %d", num / dem);
else
printf("no possible ways");
}
आउटपुट
Total number of stations = 16 Number of stopping station = 6 Possible ways = 462