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

সি/সি++ প্রোগ্রাম: nth ক্যাটালান সংখ্যা (Catalan Number)

ক্যাটালান সংখ্যাগুলো একটি সংখ্যা সিকোয়েন্স। ক্যাটালান সংখ্যাগুলো প্রাকৃতিক সংখ্যার একটি সিকোয়েন্স তৈরি করে যা বিভিন্ন গণনা সমস্যায় দেখা যায়, প্রায়শই রিকার্সিভলি ডিফাইনড অবজেক্ট জড়িত।

সি/সি++ প্রোগ্রাম: nth ক্যাটালান সংখ্যা (Catalan Number)সি/সি++ প্রোগ্রাম: nth ক্যাটালান সংখ্যা (Catalan Number)

  • Cn ২n দৈর্ঘ্যের ডাইক ওয়ার্ডের সংখ্যা। ডাইক ওয়ার্ড হলো n개의 X এবং n개의 Y নিয়ে তৈরি স্ট্রিং যেখানে স্ট্রিংয়ের কোনো প্রাথমিক সেগমেন্টে X-র চেয়ে Y বেশি থাকে না। উদাহরণস্বরূপ, দৈর্ঘ্য ৬-এর ডাইক ওয়ার্ডগুলো:

XXXYYY XYXXYY XYXYXY XXYYXY XXYXYY
  • X কে ওপেন প্যারেনথেসিস এবং Y কে ক্লোজ প্যারেনথেসিস ধরে নিলে, Cn n জোড়া প্যারেনথেসিস দিয়ে সঠিকভাবে মিলানো এক্সপ্রেশনের সংখ্যা গণনা করে।

((())) ()(()) ()()() (())() (()())
  • Cn n+1 ফ্যাক্টরকে সম্পূর্ণরূপে প্যারেনথেসাইজ করার ভিন্ন ভিন্ন পদ্ধতির সংখ্যা (বা বাইনারি অপারেটরের n বার অ্যাপ্লিকেশন অ্যাসোসিয়েট করার পদ্ধতির সংখ্যা)। n=3 হলে চার ফ্যাক্টরের পাঁচটি ভিন্ন প্যারেনথেসাইজেশন:

((ab)c)d (a(bc))d (ab)(cd) a((bc)d) a(b(cd))
  • বাইনারি অপারেটরের সাকসেসিভ অ্যাপ্লিকেশন ফুল বাইনারি ট্রি দিয়ে রিপ্রেজেন্ট করা যায়। (একটি রুটেড বাইনারি ট্রি ফুল যদি প্রতিটি ভার্টেক্সের দুটি চাইল্ড থাকে বা কোনো চাইল্ড থাকে না)। তাই Cn n+1 পাতাযুক্ত ফুল বাইনারি ট্রির সংখ্যা।

নমুনা

ইনপুট - ৬
আউটপুট - 1 1 2 5 14 42

ব্যাখ্যা: n = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ... এর জন্য প্রথম ক্যাটালান সংখ্যাগুলো:
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862,

উদাহরণ কোড

#include <iostream>
using namespace std;
long int catalan(int n) {
    if (n <= 1) {
        return 1;
    }
    long int result = 0;
    for (int i = 0; i < n; i++) {
        result += catalan(i) * catalan(n - i - 1);
    }
    return result;
}
int main() {
    for (int i = 0; i < 6; i++)
        cout << catalan(i) << " ";
    return 0;
}

আউটপুট

1 1 2 5 14 42
  1. C/C++ প্রোগ্রাম: ট্রায়্যাঙ্গুলার ম্যাচস্টিক সংখ্যা

  2. C++ প্রোগ্রাম: হেক্সাডেসিমেল থেকে ডেসিমেল কনভার্সন

  3. পাইথনে n-তম ক্যাটালান নম্বর বের করা

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