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

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

ক্যাটালান নম্বর: c₀=1, cₙ₊₁ = Σ cᵢcₙ₋ᵢ (i=0 থেকে n)। প্রথম কয়েকটি: 1, 1, 2, 5, 14, 42, 132, 429,...

পদ্ধতি ১: রিকার্শন


def catalan(n):
    if n <= 1:
        return 1
    res = 0
    for i in range(n):
        res += catalan(i) * catalan(n-i-1)
    return res

for i in range(6):
    print(catalan(i))

আউটপুট

1 1 2 5 14 42

পদ্ধতি ২: ডাইনামিক প্রোগ্রামিং


def catalan(n):
    if n == 0 or n == 1:
        return 1
    catalan_arr = [0] * (n + 1)
    catalan_arr[0] = catalan_arr[1] = 1
    for i in range(2, n + 1):
        catalan_arr[i] = 0
        for j in range(i):
            catalan_arr[i] += catalan_arr[j] * catalan_arr[i-j-1]
    return catalan_arr[n]

for i in range(6):
    print(catalan(i), end=" ")

আউটপুট

1 1 2 5 14 42

উপসংহার

রিকার্শন এবং ডাইনামিক প্রোগ্রামিং (বটম-আপ) দিয়ে n-তম ক্যাটালান নম্বর বের করা।

  1. ফিবোন্যাচি সিরিজে একটি সংখ্যার nth মাল্টিপল বের করার পাইথন প্রোগ্রাম

  2. পাইথনে আর্মস্ট্রอง নম্বর চেক করা

  3. পাইথনে n-তম ফিবোনাচ্চি নম্বর বের করা

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