关于数学:数学题卡特兰数及其应用

49次阅读

共计 592 个字符,预计需要花费 2 分钟才能阅读完成。

简介

卡塔兰数是组合数学中一个常在各种计数问题中呈现的数列。以比利时的数学家欧仁·查理·卡特兰(1814–1894)命名。历史上,清朝数学家明安图(1692 年-1763 年)在其《割圜密率捷法》中最先创造这种计数形式,远远早于卡塔兰。有中国学者倡议将此数命名为“明安图数”或“明安图 - 卡塔兰数”。

卡塔兰数的个别项公式为

前 20 项的卡塔兰数为:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190,

递推公式

python 代码求第 n 个卡特兰数

    def numTrees(self, n):
        catelan_num = [-1,1,1]
        
        def catelan(n):
            result = 0
            for i in range(1,n):
                result += catelan_num[i]*catelan_num[n-i]
            return result

        for i in range(3,n+1):
            catelan_num.append(catelan(i))
        return catelan_num[n]

卡特兰数还有那些利用呢?

1. 括号化 ()() || (()) 这样子滴

2. 出栈秩序 (above)

3. 凸多边形三角划分

4. 给定结点组成二叉搜寻树

5.n 对括号正确匹配次数

试一下用这个公式去做吧!

正文完
 0