关于卡特兰数

不那么有意思的定义

卡特兰数\(\big(Catalan\big)\)用 \(H\) 来表示,有形式如:

\(H_n=\dfrac{\binom {2n} n}{n+1} (n\geq2)\)

很好,你已经知道定义了。

老师说:它是栈出栈入栈的\(方案数\) \(???\)

放到一个递推式就有了:

\(H_n= \begin{cases} H_{n-1}+H_{n-2} &\text{if } {n \geq 2} \\ 1 &\text{if } n=0,1 \end{cases}\)

好了,你知道递推式了

解决不那么实际的问题

那么,我们引入一个问题:

对于一个大大的 \(n\times n\) 网格图,我们有一个点从 \((0,0)\) 走向 \((n,n)\),并且这个点只能向右或者向上走,但是,它不能碰到 \(y=x\) 这一直线

这个问题叫做------'路径计数问题'。

不那么合理的解决方案

我们选择画一个图:

如图所示,从 \((0,0)\) 开始只能到达 \((1,0)\), 同理 \((n,n)\) 只能从 \((n,n-1)\) 转移过来,我们知道,假设我们没有那一条斜率为 \(1\) 的智障直线,我们就能有 \(\binom {2n-2} {n-1}\) 的方案数,这时候,我们把多余的方案去掉,我们把最后离开或者超于这条直线的点到 \((1,0)\) 都关于 \(y=x\) 对称。于是,我们就能轻松将多于的方案算出来,此时从 \((0,1)\) 到 \((n,n-1)\) 就有 \(\binom {2n-2} {n}\) 的方案数。

然后

就有了结论 \(\binom {2n-2} {n-1}-\binom {2n-2} {n}\) 就是当前答案的......一部分

我们这时候加上开头的两个点,便有了 \(2 \bigg(\binom {2n-2} {n-1}-\binom {2n-2} {n}\bigg)\),这时候某些人觉得它太丑陋了。

所以,我们化简这个式子:

原式
\(=2\times \dfrac{(2n-2)!}{(n-1)!\times(n-1)!}-2\times \dfrac{(2n-2)!}{n!\times(n-2)!}\)
= 2 \\times \\dfrac{(2n-2)!}{(n-1)!}\\times \\bigg( \\dfrac{1}{(n-1)!}-\\dfrac{1}{(n-2)! \\times n}\\bigg)
\(=\dfrac{(2n-2)!}{(n-1)!}\times\bigg(\dfrac{2 \times n}{(n-1)! \times n}-\dfrac{2\times(n-1)}{(n-1)! \times n}\bigg)\)
\(=\dfrac{(2n-2)!}{(n-1)!}\times \dfrac{2}{(n-1)! \times n}\)
\(=\dfrac{(2n-2)!}{(n-1)!\times (n-1)! }\times \dfrac{2}{n}\)
\(=\dbinom {2n-2} {n-1}\times \dfrac{2}{n}\)

放入原问题就有了结论\(\dbinom {2n} {n}\times \dfrac{2}{n+1}\)

不那么好看的文献

这就是卡特兰数和它主要延伸出的问题了,更多的,点这里

不那么简单的题目

AHOI2012 树屋阶梯
HNOI2009 有趣的数列

相关推荐
j7~1 小时前
【C++】C++ 继承全解析:从基本语法到菱形继承的底层原理
开发语言·c++·继承·组合·虚继承·#暑假·七月创作之星博客挑战赛
Tisfy2 天前
LeetCode 1979.找出数组的最大公约数:模拟(附手动gcd)
java·数学·算法·leetcode·题解·最大公约数
Luhui Dev4 天前
用 AI 生成一道几何题配图:三角形四心作图案例
人工智能·数学·agent·luhuidev
Tisfy5 天前
LeetCode 3658.奇数和与偶数和的最大公约数:数论 / 数学O(1)
数学·算法·leetcode·数论·题解
Luhui Dev7 天前
教育 SaaS 产品如何低成本集成 AI 几何图形能力?开发者选型实录
人工智能·数学·agent·luhuidev
金銀銅鐵10 天前
[Python] 借助图形化界面探索模n运算的规律
python·数学
金銀銅鐵14 天前
费马小定理
python·数学·算法
AI科技星16 天前
公理化数学化学|48小时确权终稿(完整投产包)
人工智能·数学·算法·重构·拓扑学·乖乖数学·全域数学
金銀銅鐵17 天前
算术基本定理
数学
金銀銅鐵20 天前
[Python] 基于欧几里得算法,实现分数约分计算器
python·数学