卡特兰数 原理、性质 、应用场景与编程求解

本文详细介绍了卡特兰数的定义、性质、应用,并提供了编程求解第n个卡特兰数的方法。卡特兰数在组合数学中广泛出现,与括号表达式、二叉树、 Dyck 字符串等多个领域有密切联系。同时,文章给出了计算卡特兰数的递推公式,并探讨了其在剧场购票问题中的应用。
摘要由CSDN通过智能技术生成

卡特兰数

1. 定义与背景

卡塔兰数组合数学中一个常出现在各种计数问题中出现的数列。由以比利时的数学家欧仁·查理·卡塔兰 (18141894)命名。

卡塔兰数的一般项公式为 C_n = \frac{1}{n+1}{2n \choose n} = \frac{(2n)!}{(n+1)!n!}

另类递归式 $ h(n)=\frac{4*n-2}{n+1}*h(n-1)$

前几项为: 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020, 91482563640, 343059613650, 1289904147324, 4861946401452, …

2. 性质

* C n C_n Cn*的另一个表达形式为C_n = {2n\choose n} - {2n\choose n-1} \quad\mbox{ for }n\ge 1 所以,C**n是一个自然数;这一点在先前的通项公式中并不显而易见。这个表达形式也是André对前一公式证明的基础。(见下文的第二个证明。)

卡塔兰数满足以下递推关系

C_0 = 1 \quad \mbox{and} \quad C_{n+1}=\sum_{i=0}^{n}C_i,C_{n-i}\quad\mbox{for }n\ge 0.

它也满足

C_0 = 1 \quad \mbox{and} \quad C_{n+1}=\frac{2(2n+1)}{n+2}C_n,

这提供了一个更快速的方法来计算卡塔兰数。

卡塔兰数的渐近增长为

C_n \sim \frac{4n}{n{3/2}\sqrt{\pi}}

它的含义是左式除以右式的商趋向于1当n → ∞。(这可以用n!的斯特灵公式来证明。)

所有的奇卡塔兰数C_{n}都满足n = 2k − 1。所有其他的卡塔兰数都是偶数。

递推公式
C_n = /frac{1}{n+1}{2n/choose n} = /frac{(2n)!}{(n+1)!/,n!} /quad n/ge 0
C_n = {2n/choose n} - {2n/choose n+1} /quad n/ge 0
C_0 = 1 /quad , /quad C_{n+1}=/frac{2(2n+1)}{n+2}C_n

/begin{displaymath}C_0 = 1 /quad , /quad C_{n+1}=/sum_{i=0}^{n}C_i/,C_{n-i}/quad n/ge 0/end{displaymath}

/begin{displaymath}C_n= /frac 1{n+1} /sum_{i=0}^n {n /choose i}^2/end{displaymath}

3.应用

  1. C n C_{n} Cn 表示长度2n的dyck word的个数。Dyck word是一个有n个X和n个Y组成的字串,且所有的部分字串皆满足X的个数大于等于Y的个数。以下为长度为6的dyck words:

​ XXXYYY XYXXYY XYXYXY XXYYXY XXYXYY

  1. 将上例的X换成左括号,Y换成右括号,C**n表示所有包含n组括号的合法运算式的个数:

​ ((())) ()(()) ()()() (())() (()())

C n C_{n} Cn表示有n+1个叶子的二叉树的个数。

img

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值