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

C++ দিয়ে মানুষ জোড়া বাঁধার উপায়ের সংখ্যা বের করা

একটি সমস্যা সমাধান করতে হবে যেখানে n = মানুষের সংখ্যা। প্রতিটি মানুষ একা থাকতে পারে বা একটি জোড়া (pair) তৈরি করতে পারে। আমাদের বের করতে হবে এই মানুষগুলো কতভাবে জোড়া বাঁধা যায়।

ইনপুট: 3 আউটপুট: 4 ব্যাখ্যা: [{1}, {2}, {3}], [{1, 2}, {3}], [{1}, {2, 3}], [{1, 3}, {2}] - এই ৪টি উপায়েই ৩ জন মানুষ জোড়া বাঁধা যায়।
ইনপুট: 6 আউটপুট: 76
সমাধানের পদ্ধতি

এই পদ্ধতিতে, আমরা ইয়ং ট্যাব্লো (Young Tableau) ফর্মুলা ব্যবহার করব এই সমস্যা সমাধানের জন্য। আমরা যে সূত্রটি ব্যবহার করব সেটি হলো −

A[n] = A[n-1] + (n-1) * A[n-2]
উদাহরণ

উপরোক্ত পদ্ধতির C++ কোড

 #include <bits/stdc++.h> using namespace std; int Young_Tableau(int n){     int A[n + 1]; // উত্তর রাখার অ্যারে     A[1] = 1; // ইনিশিয়াল ভ্যালু     A[2] = 2; // ইনিশিয়াল ভ্যালু     for (int i = 3; i <= n; i++) { // ইয়ং ট্যাব্লো সূত্র প্রয়োগ         A[i] = A[i - 1] + (i - 1) * A[i - 2];     }     return A[n]; // উত্তর রিটার্ন } int main(){     int n = 6;     cout << Young_Tableau(n);     return 0; }
আউটপুট
76
কোডের ব্যাখ্যা

উপরের পদ্ধতিতে, আমরা সহজে ইয়ং ট্যাব্লোর ফর্মুলা প্রয়োগ করি, যেখানে আসল দুইটি পূর্ববর্তী সংখ্যা দরকার। এগুলো অ্যারে ইনডেক্সে সংরক্ষণ করে সূত্রে বসিয়ে উত্তর বের করি।

উপসংহার

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

  1. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা

  2. C++ দিয়ে N-ary ট্রি ট্রাভার্স করার উপায়ের সংখ্যা বের করা

  3. C++-এ ট্রেন স্টপেজ স্টেশন সংখ্যা বের করুন

  4. C++-এ সেটে রিফ্লেক্সিভ রিলেশন সংখ্যা বের করুন