ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

卡塔兰数

2022-07-01 15:34:25  阅读:164  来源: 互联网

标签:直线 兰数 出栈 nn 卡塔 Catalann 2n 1n


卡特兰数的英文维基讲得非常全面,强烈建议阅读!

Catalan number - Wikipedia

(本文中图片也来源于这个页面)
由于本人太菜,这里只选取其中两个公式进行总结。
(似乎就是这两个比较常用?)
首先先扔卡特兰数的定义式

Catalann=i=1n1CatalaniCatalanni

(卡特兰数的很多应用,比如二叉树形态数,出栈序列数等,都由这个定义式得到。详见英文维基)

公式1 (通项公式) :

Catalann=1n+1C2nn

在上文提到的出栈序列的问题情景中,如果有n个元素,在平面直角坐标系中用x坐标表示入栈数,y坐标表示出栈数,则坐标(a,b)表示目前已经进行了a次入栈和b次出栈,则再进行一次入栈就是走到(a+1,b),再进行一次出栈就是走到(a,b+1)。并且,由于入栈数一定小于等于出栈数,所以路径不能跨越直线y=x
因此,题目相当于求从(0,0)走到(n,n)且不跨越直线y=x的方案数
首先,如果不考虑不能跨越直线y=x的要求,相当于从2n次操作中选n次进行入栈,则方案数为C2nn
然后,考虑对于一种不合法的方案,一定在若干次操作后有一次出栈数比入栈数多一次,这个点在直线y=x+1 (即下图中红色的线) 上。那么把第一次碰到该直线以后的部分关于该直线对称,则最终到达的点是(n1,n+1) (如下图) 。

图源:英文维基 (即文首网址)
显然,任何非法方案都可以通过此方式变成一条从(0,0)(n1,n+1)的路径,有C2nn+1种。而任何合法方案由于不接触直线y=x+1,无论从哪个点对称都不是一条连续的路径。由于合法方案数就是Catalann,所以:

Catalann=C2nnC2nn+1=(2n)!n!n!(2n)!(n+1)!(n1)!=1n+1((2n)!(n+1)n!n!(2n)!n!(n1)!)=1n+1((2n)!(n+1)n!n!(2n)!nn!n!)=1n+1(2n)!(n+1)(2n)!nn!n!=1n+1(2n)!n!n!=1n+1C2nn

公式2 (递推公式) :

Catalann+1=4n+2n+2Catalann

(这个公式的推导过程似乎网上没有,估计是思路太简单了……我太菜了想了半天才推出来)
由上面那个通项公式得

Catalann+1=1n+2C2n+2n+1=1n+2(2n+2)!(n+1)!(n+1)!=1n+2(2n)!(2n+1)(2n+2)n!n!(n+1)2=1n+2(2n+1)(2n+2)(n+1)1n+1(2n)!n!n!=2(2n+1)n+21n+1C2nn=4n+2n+2Catalann

[转载自Inspector_Javert](https://www.cnblogs.com/zyt1253679098/p/9190217.html)

标签:直线,兰数,出栈,nn,卡塔,Catalann,2n,1n
来源: https://www.cnblogs.com/hnuzmh/p/16434816.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有