卡特兰数
排列 \(n\) 个 \(-1\) 和 \(n\) 个 \(+1\),要求前缀和恒 \(\ge 0\),方案数。
这个就是括号匹配对吧,我们考虑第一个左括号匹配的右括号在什么地方。得到递推式
\[C_n=\sum_{i=1}^nC_{i-1}C_{n-i}
\]
它的前几项是 \(1,1,2,5,14,42,132\),可能会在某些找规律里看到。
解这个递推式,我们可以得到
\[C_n=\frac{\binom{2n}{n}}{n+1}
\]
为了训练 GF,我们展示一下中间过程。
\[xF^2+1=F\Rightarrow F=\frac{1\pm\sqrt{1-4x}}{2x}
\]
为了确定符号,我们分子有理化后代入 \(x=0\),也就是求出 \([x^0]\),发现应该取负号。
为了展开 \(\sqrt{1-4x}\),我们使用牛顿二项式定理。
\[\begin{aligned}
\sqrt{1-4x}&=\sum_{k\ge 0}(-4x)^k\binom{\frac12}{k}\\
&=\sum_{k\ge 0}(-4x)^k\frac{(\frac12)^{\underline{k}}}{k!}\\
&=1+\sum_{k\ge 1}(-4x)^k\frac{(-1)^{k-1}(2k-3)!!}{2^kk!}\\
&=1-\sum_{k\ge 1}2^kx^k\frac{(2k-2)!}{k!(k-1)!2^{k-1}}\\
&=1-\sum_{k\ge 1}2x^k\binom{2k-1}k\frac{1}{2k-1}
\end{aligned}
\]
代回原式,得到
\[\begin{aligned}
\sum_{k\ge 1}x^{k-1}\binom{2k-1}k\frac1{2k-1}&=\sum_{k\ge 0}x^k\binom{2k+1}{k+1}\frac{1}{2k+1}\\
&=\sum_{k\ge 0}\binom{2k}{k}\frac{1}{k+1}x^k
\end{aligned}
\]
斯特林数
首先是大家都知道的递推式。
\[{n\brace k}={n-1\brace k-1}+k{n-1\brace k}\\
{n\brack k}={n-1\brack k-1}+(n-1){n-1\brack k}
\]
然后第二类斯特林数有一个假的通项公式。
\[{n\brace k}=\frac1{k!}\sum_{i=0}^k(-1)^{k-i}\binom{k}{i}i^n=\sum_{i=0}^k\frac{(-1)^{k-i}i^n}{i!(k-i)!}
\]
根据这个公式,我们可以卷积计算同一行第二类斯特林数。
为了计算同一列斯特林数,我们可以尝试写出它的生成函数 \(F_k=\sum_{n\ge 0}{n\brace k}x^n\)。
我们考虑一个集合的选择方案,你发现 EGF 是 \(e^x-1\),所以 \(F_k=(e^x-1)^k\),我们计算多项式幂即可。
然后第一类斯特林数,类似地有一个生成函数 \(F_k=(\sum_{i\ge 1}\frac{x^i}{i})^k\),仍然计算次幂即可。
同一行的话,我们找个 OGF,然后用递推式构造一下,发现 \(F_n(x)=x^{\overline{n}}\)。
然后斯特林数最重要的应用都跟这些东西无关。最重要的是上升/下降幂与普通幂的转化。
首先有
\[x^n=\sum_k{n\brace k}x^{\underline{k}}\\
x^{\overline{n}}=\sum_k{n\brack k}x^k
\]
证明使用归纳法,进行一个类似裂项的拆就可以了。
然后,要介绍一个重要的公式,叫做反转公式。
\[\sum_k(-1)^{n-k}{n\brace k}{k\brack m}=[n=m]\\
\sum_k(-1)^{n-k}{n\brack k}{k\brace m}=[n=m]
\]
证明考虑连续使用变化的式子。
\[\begin{aligned}
x^n&=\sum_{k}{n\brace k}x^{\underline{k}}\\
&=\sum_k{n\brace k}(-1)^k(-x)^{\overline{k}}\\
&=\sum_k{n\brace k}(-1)^k\sum_p{k\brack p}(-x)^p\\
&=\sum_px^p\sum_k{n\brace k}{k\brack p}(-1)^{p+k}
\end{aligned}
\]
这样就证明了上面第一个式子。第二个我并不想证。
有了这个式子,我们就会斯特林反演了。
贝尔数
\[B_n=\sum_k{n\brace k}
\]
递推可以考虑 \(n\) 跟谁放到一起了。
\[B_n=\sum_{k=0}^{n-1}\binom{n-1}{k}B_{n-1-k}
\]
由组合意义,容易知道它的 EGF 是 \(\exp(e^x-1)\)。
分拆数
这是无序的拆分方案数。前几项是 \(1,1,2,3,5,7,11,15,22\)。
进一步可以定义 \(k\) 部分拆数 \(p_{n,k}\)。
显然有递推式
\[p_{n,k}=p_{n-1,k-1}+p_{n-k,k}
\]
如果你直接枚举有几个 1,也可以写成
\[p_{n,k}=\sum_{j=0}^kp_{n-k,j}
\]
显然,分拆数生成函数是 \(\prod_{i\ge1}\frac{1}{1-x^i}\),\(k\) 部分拆数是 \(\prod_{i\ge 1}\frac{1}{1-x^iy}\)。
当然,你也可以定义最大 \(k\) 分拆数,就是最大部分是 \(k\) 的分拆数。
这个显然也有递推式
\[p_{n,k}=\sum_{i=0}^kp_{n-k,i}
\]
你发现递推式长得跟 \(k\) 部分拆数完全一样,并且边界条件完全一样,所以它们是完全一样的。
事实上,如果我们把分拆画成一个类似杨表的形式,你发现把杨表沿对角线翻转,就可以证明它们确实是一样的。
还有互异分拆数。我们类似定义互异 \(k\) 部分拆数,有递推式
\[p_{n,k}=p_{n-k,k}+p_{n-k,k-1}
\]
分拆数当中一个值得提到的点就是,\(n\) 至多被表示成 \(O(\sqrt{n})\) 个不同自然数的和。
这有个题,我咋不会做啊。
link。