卡塔兰(Eugène Catalan)在19世纪中叶系统研究卡塔兰数列,使其得名,但未涉及现代生成函数工具。
递归分治结构:每个复杂问题可拆解为两个独立子问题(如左子树/右子树、括号内/括号外),子问题解相乘后求和,天然匹配递推式:
一、卡塔兰数场景
1、「正确括号」的排列:
编程写代码时括号必须成对闭合,比如 (()()) 是合法的,但 ())( 是错的。
卡塔兰数是计算像“n对括号能组成多少种正确嵌套的排列方式”这类问题的答案。
例如3对括号有5种正确排列:((()))、(()())、(())()、()(())、()()(),像搭积木一样一层套一层,不允许中间塌掉。
2、「二叉树」的家族图谱
想象家族族谱,每个人要么没有后代,要么有左右两个分支。3代人形成的家族族谱中,每一代父母必须有两个孩子,计有5种组合数!
3、标准Young表
将 1~2n 填入一个 2×n 的方格表中,使得每一行自左而右、每一列自上而下都是严格增的。
当 n=3 时,有5种不同的标准Young表:
如果第一行表示“(”的位置,第二行表示“)”的位置,那么每个“标准Young表”都对应一个“匹配的括号串”。
4、不相交的弦
在一个圆周上分布着 2n 个点,两两配对,并在这两个点之间连一条弦, n 条弦彼此不相交。
当 n=3 时,有5种不同的连弦方式:
从某一个特定的点开始,逆时针“前进”,如果“遇到”了“新”弦,则写下一个“(”,如果“遇到”了“旧”弦,则写下一个“)”,不相交的弦就转化为匹配的括号串。
5、出栈序列
假设入栈顺序为 1,2,3,...n ,所有可能的出栈序列的数目是多少?
当 n=3 时,有如下5种不同的入出栈顺序,对应于5个不同的出栈序列:
从上图来看,“入出栈顺序”和“括号匹配”之间存在一一对应。
6、笔画“群峰”
使用 n 个斜向上的线段和 n 个相同长度的斜向下的线段,画出群峰。
当 n=3 时,可以画出以下5种不同的群峰:
如果用“(”取代斜向上的线段,用“)”取代斜向下的线段,则转化为“括号匹配”问题。
二、卡塔兰数(Catalan Numbers)的标准定义
1. 递推关系定义
卡塔兰数 Cn 满足以下递推关系:
- 初始条件:C0=1,表示空结构的唯一性(如空括号序列、空二叉树)。
- 递推逻辑:第 n+1项的值由前 n+1 项的组合分解求和得到,体现了分治思想。例如,合法括号序列可分解为第一个括号内的 i 对括号和剩余的 n-i对括号的组合。
- 递推关系最早由欧拉(18世纪)和 Segner(1758)在研究多边形剖分时提出。
- 递推关系角标之和不变,
2、闭式公式(通项公式)
卡塔兰数的通项表达式为:
- 通项公式由 Liouville(1838)通过生成函数法首次严格证明。
- 通过生成函数法或反射原理(路径计数)得出。
示例:
3、生成函数
三种定义等价性说明:
递推 → 生成函数:通过将递推关系代入生成函数,解得闭式表达式。
生成函数 → 通项:利用广义二项式定理展开生成函数,提取系数得到通项公式。
通项 → 递推:通过数学归纳法可验证通项公式满足递推关系。
分别对应组合分解、直接计算和解析分析的需求。其核心是通过不同数学工具(分治、路径计数、幂级数)揭示同一组合结构的本质。
三、反射原理推导卡塔兰级数通项公式
1、关于反射定理
反射原理由法国数学家 Désiré André 于 1887 年提出,用于解决路径计数问题。核心内容如下:
路径定义:考虑从起点 A(0,0) 到终点 B(m,n)的网格路径,每一步仅允许向右(→)或向上(↑)移动。
限制边界:定义一条禁止跨越的直线边界 L,例如对角线 y=x+k(k 为常数)。
非法路径:路径在移动过程中至少有一次跨越(即触碰或越过)边界 L。
非法路径与反射后路径的一一对应:每个从 A(0,0)到 B(m,n) 的非法路径,均可通过关于边界 L 的几何反射,唯一映射到一条从 A 的对称点 A′ 到 B 的路径,且反射后的路径不再受原边界限制。
具体映射步骤:
1)首次跨越点:找到非法路径首次跨越边界 L的点 P。
2)反射操作:将点 P 之后的路径关于 L反射(即交换移动方向:右→上或上→右)。
3)新路径终点:反射后路径的终点变为 B′(m′,n′),其位置由反射对称性决定。
一一映射:通过几何变换(反射)将复杂计数问题转化为简单问题。
首次越界分析:聚焦路径首次越界的时刻,利用对称性简化计算。
反射原理通过将非法路径反射为终点不同的路径,巧妙地将卡特兰数问题转化为组合数的差值计算。
这一方法体现了组合数学的直观与几何之美,是经典计数技术的典范。
2、反射原理应用于不能“穿越”对角线的格路问题:
从 (0,0) 点出发,每步只能沿 x 轴或 y 轴的正方向每步走一个单位,最终走到 (m,n) 点,有多少条路径?方案数就是X走m步,Y走n步:
不“穿越”对角线的各路问题,那就是从 (0,0) 到 (m,n) (其中 m>n ),要求途径的每个点 (a,b) 都满足 a>b (除起点外)。这样就只能在对角线(y=n/m*X)下方走,变成不能“接触”对角线的格路问题。
第一步一定是 (0,0)→(1,0),之后每1条接触对角线的道路都一一对应1条从 (0,1) 到 (m,n) 的道路(就是第一次接触对角线之前的道路做关于对角线的对称:反射原理):
从 (0,1) 到 (m,n) 的路线方案数是:
结果是
当 m=n+1 时得著名的卡特兰数(Catalan number) Cn :
如m=4,n=3时
四、幂级数、生成函数法推导卡塔兰通项公式
推导步骤:
1、定义幂级数
Cn递推关系式,两系数“先相乘后相加”之形式,且两系数下标之“和”n不变,是“和”的平衡点i在变化!什么情况下才能够形成“先相乘后相加”这个形式呢?
……(x+y)(x+y)(x+y)这个两(或n)数“先相加再相乘”的形式可以变成x^3+3x^2y+3xy^2+y^3这个两(或n)数“先相乘后相加”的形式,也就是公式的展开……反之,“先相乘后相加”的形式可以通过代数基本原理,因式分解变成“先相加再相乘”的形式,这种关系是互逆的!
2、将递推关系编码生成函数方程
从递推关系出发:
3、求解得生成函数方程:
G(x)在 x=0 处收敛且 G(0)=C0=1:
4、卡塔兰生成函数表达式
选取唯一合理解:
5、推导通项公式
运用广义二项式定理:参阅《牛顿广义二项式定理推导(1664年~1667年原滋原味)》
其中广义二项式系数为:
化简系数:
生成函数的级数形式:
通项公式:
对比系数,由此直接读出 Cn的表达式:
6、衍生公式
备注:码字不易,图片来至于网络,如有侵权可以联系删除!!!