সমস্যা: n সংখ্যক স্টেশনের মধ্যে r সংখ্যক স্টেশনে ট্রেন থামবে এমনভাবে যাতে কোনো দুটি থামবেনদার স্টেশন egymার পাশে না থাকে — এই শর্তে ট্রেন কতভাবে থামতে পারে তা বের করতে হবে।
সমস্যা ব্যাখ্যা
এই প্রোগ্রামটি ট্রেনের থামানোর способসমূহ (permutations) গণনা করবে। ট্রেন X বিন্দু থেকে Y বিন্দুতে যাবে। এই দুটি বিন্দুর মধ্যে n সংখ্যক স্টেশন রয়েছে। ট্রেন এই n স্টেশনের মধ্যে r স্টেশনে থামবে, শর্ত হলো কোনো দুটি পরপর থামবেনদার স্টেশন হবেনা।
এই পারমুটেশন সরাসরি nPr সূত্র দিয়ে বের করা যায়।
উদাহরণ:
Input: n = 16, r = 6 Output: 462
ব্যাখ্যা: ১৬টি স্টেশনের মধ্যে ৬টি স্টেশনে থামানোর উপায়ের সংখ্যা পারমুটেশন সূত্র দিয়ে বের করা হয়:
nPr বা p(n, r) = n! / (n-r)!
অ্যালগরিদম
Input: মোট স্টেশন n এবং থামবেনদার স্টেশন r Step 1: n এবং r এর মান দিয়ে p(n,r) = n! / (n-r)! এর মান বের করুন Step 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");
return 0;
}
আউটপুট
Total number of stations = 16 Number of stopping station = 6 Possible ways = 462