Catalan数
Catalan 数(卡特兰数) 计数许多“每一步都不能越过边界”的结构。一个明确的版本是:用 个左括号和 个右括号排成合法括号串,其中从左到右读的每个前缀,左括号数都不少于右括号数。 时共有五串:
((()))、(()())、(())()、()(())、()()(),故 。
先按最外层分解
一串非空合法括号必可唯一写成 (A)B,其中 A 与 B 都是合法括号串。若 A 用 对括号,B 就用 对,因此
空串计为一种,才能让 的递推得到 。再算得 、。
从全部排法减去越界排法
不管前缀条件, 个位置中选 个放左括号,有 种。对第一次出现右括号数超过左括号数的非法串,把此处之前的左右括号互换,便与“ 个左括号、 个右括号”的串一一对应;非法数为 。所以 递推适合逐项计算,封闭式适合比较规模。两式计数的是同一批结构,不是两个不同定义。