以下是使用动态规划方法计算第 n 个卡特兰数并对模数取模的 Python 代码:

def catalan_number(n, mod=1000000000):
    if n == 0:
        return 1
    c = [0] * (n + 1)
    c[0] = 1
    for i in range(1, n + 1):
        for j in range(i):
            c[i] = (c[i] + c[j] * c[i - j - 1]) % mod
    return c[n]

该代码使用动态规划的方法求解卡特兰数,时间复杂度为 O(n^2),空间复杂度为 O(n)。其中,c[i] 表示第 i 个卡特兰数,c[0]=1。对于 i,c[i] 的值由 c[0]~c[i-1] 的值递推得到。

该代码默认对 10 亿取模,可以根据需要修改 mod 参数的值来更改模数。例如,要对 100 取模,只需要将 catalan_number(n, mod=1000000000) 中的 mod 改为 100 即可。

Python 计算第 n 个卡特兰数并取模 - 动态规划实现

原文地址: https://www.cveoy.top/t/topic/njcU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录