কম্পিউটার

C++ ব্যবহার করে স্টপিং স্টেশনের সংখ্যা খুঁজুন


পয়েন্ট X এবং Y এর মধ্যে n সংখ্যক মধ্যবর্তী ট্রেন স্টেশন রয়েছে। s স্টেশনে থামার জন্য বিভিন্ন উপায়ে ট্রেনের ব্যবস্থা করা যেতে পারে এমন সংখ্যা গণনা করুন যাতে কোনও দুটি স্টেশন একে অপরের পাশে না থাকে। তাই এই নিবন্ধে, আমরা স্টপিং স্টেশনের সংখ্যা খুঁজে বের করার জন্য প্রতিটি সম্ভাব্য পদ্ধতির ব্যাখ্যা করব। সমস্যাটির দিকে তাকিয়ে, আমরা দেখতে পাচ্ছি যে আমাদের এমন সংমিশ্রণগুলি খুঁজে বের করতে হবে যার মাধ্যমে ট্রেনগুলিকে কয়েকটি স্টেশনে থামানো যেতে পারে৷

সমস্যা সমাধানের পন্থা

একটি উদাহরণ দেওয়া যাক যে আটটি মধ্যবর্তী স্টেশন রয়েছে এবং আমাদের তিনটি মধ্যবর্তী স্টেশনে ট্রেন থামানোর উপায় খুঁজে বের করতে হবে৷

n = 8, s = 3

আমাদের (n - s), অর্থাৎ, পাঁচটি স্টেশন বাকি আছে যেখানে ট্রেন থামতে পারে না,

C++ ব্যবহার করে স্টপিং স্টেশনের সংখ্যা খুঁজুন

আমাদের পাঁচটি স্টেশন A, B, C, D, E, যেখানে ট্রেন থামতে পারে না। এখন আমাদের কাছে তিনটি স্টপিং স্টেশনের ব্যবস্থা করার জন্য ছয়টি বিন্দুযুক্ত স্থান রয়েছে যাতে কোনো দুটি স্টেশন পরপর না থাকে। সুতরাং, উপায় সংখ্যা হল −

6c3= [fact(6) - fact(3)] / fact(3) = 6 * 5 * 4 / 3 * 2 * 1 = 20

X এবং Y বিন্দু থেকে তিনটি স্টপিং স্টেশন সাজানোর 20টি উপায় আছে। তাই এখানে উদাহরণ দেওয়া হল −

Input : n = 15 s = 4
Output : 495
Input : n = 8 s = 3
Output : 20

উদাহরণ

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n = 8, s = 3;
    int flag1 = 1, flag2 = 1, temp = s, ans;
    // selecting 's' positions out of 'n-s+1'
    int x = n - s + 1;
    while (x != (n - 2 * s + 1)) {
       flag1 = flag1 * x;
       x--;
    }
    while (temp != 1) {
       flag2 = flag2 * temp;
       temp--;
    }
    ans = flag1 / flag2;
    if ((n - s + 1) >= s)
       cout << "Number of ways : " << ans;
    else
       cout << "not possible to find";
    return 0;
}

আউটপুট

Number of ways : 20

উপরের কোডের ব্যাখ্যা

এই C++ কোড বোঝার জন্য, আমরা সমাধানটিকে ধাপে ভাগ করতে পারি।

  • n এ স্টেশনের সংখ্যা নিচ্ছে এবং ইনপুট হিসাবে s-এ স্টেশন থামানো।

  • 1 দিয়ে ফ্ল্যাগ 1 এবং ফ্ল্যাগ 2 ভেরিয়েবল শুরু করা এবং s-এর মান একটি টেম্প ভেরিয়েবলে সংরক্ষণ করা।

  • ফ্ল্যাগ১ গণনা করা হচ্ছে যা লব [ফ্যাক্ট(এন)- ফ্যাক্ট(আর)]।

  • পতাকা 2 গণনা করা হচ্ছে যা হর [তথ্য(r)]

  • মুদ্রণের ফলাফল।

উপসংহার

এই নিবন্ধে, মধ্যবর্তী স্টেশনগুলিতে ট্রেনগুলি থামানো যেতে পারে এমন সংখ্যা খুঁজে বের করার জন্য আমরা একটি সমস্যা সমাধান করি যাতে কোনও দুটি স্টেশন পরপর না থাকে। এছাড়াও আমরা এই সমস্যার জন্য C++ প্রোগ্রাম শিখেছি এবং সম্পূর্ণ পদ্ধতির মাধ্যমে আমরা এই সমস্যার সমাধান করেছি। আমরা অন্যান্য ভাষায় যেমন সি, জাভা, পাইথন এবং অন্যান্য ভাষায় একই প্রোগ্রাম লিখতে পারি।


  1. C++ ব্যবহার করে পঞ্চভুজ পিরামিডাল নম্বর খুঁজুন

  2. C++ ব্যবহার করে একটি স্ট্রিং এর সাবস্ট্রিং এর সংখ্যা খুঁজুন

  3. C++ ব্যবহার করে একটি সেটে রিফ্লেক্সিভ রিলেশনের সংখ্যা খুঁজুন

  4. C++ ব্যবহার করে pl/sql-এ একটি সংখ্যার ফ্যাক্টরিয়াল খুঁজুন।