কম্পিউটার টিউটোরিয়াল

সি প্রোগ্রামিং-এ ট্রেন স্টপিং স্টেশন সমস্যা সমাধান


সমস্যা: 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

  1. ০-১ ন্যাপস্যাক সমস্যার পাইথন প্রোগ্রাম

  2. পাইথনে একটি সংখ্যার ফ্যাক্টোরিয়াল প্রোগ্রাম

  3. পাইথন প্রোগ্রাম: n-তম ফিবোনাচ্চি সংখ্যা বের করা

  4. পাইথন প্রোগ্রাম: n-তম ক্যাটালান সংখ্যা বের করা