卡特兰数 Catalan
卡特兰数
定义
- 有一个大小为
的方格图,左下角为 右上角为 ,从左下角开始 每次都只能向右或者向上走一单位,不走到对角线 上方(但可以触碰) 的情况下到达右上角有多少可能的路径? - 在圆上选择
个点,将这些点成对连接起来使得所得到的 条线段不相交的 方法数? - 一个栈的进栈序列为
有多少个不同的出栈序列? 个结点可构造多少个不同的二叉树? 对括号能组成的括号序列数?- ......
这些问题的方案数可以证明是相等的。我们先以第一个命题来具体研究
图片有点抽象还请各位海涵一下。
我们从(1,1)走到(n,n)的方案数可以递推来求。
设我们第一次接触到对角线时的横坐标为i,前面的方案数可看为从(2,1)走到(i,i-1)的方案数,后面的方案数可看为从(i,i)走到(n,n)的方案数。
对 i 求和有:
我们还可以看为总方案数减去超过对角线(触碰到红线)的方案数。
我们对最后一次触碰到红线后的部分进行翻转,则原来的每一条不合法路径(如蓝色)就一一对应了一条终点为(n-1,n+1)的路径(如绿色)。
所以卡特兰数的组合意义是
综上:
再看卡特兰数的第二个和第四个定义,可以发现它们的递推式与该递推式相同。对于第三个和第五个定义,可以认为就是在走网格,并且横向步数不超过纵向步数。
通项公式:
递推式2:
因为上课讲的例题都没怎么听懂,这里就不放题了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具