1. Raney 引理
Raney 引理:对于整数数列 a1,a2,…,an,如果满足 i=1∑nai=1,则 a 的所有循环位移中,恰有一个满足所有前缀和都是正整数。
证明:令 Si=j=1∑iaj,则 Sn=1,假如令 i 作为循环位移后的开头,则前缀和序列为 Si−Si−1,Si+1−Si−1,…,Sn−Si−1,Sn−Si−1+S1,…,Sn−Si−1+Si−2,Sn,容易发现前缀和序列为 Si,…,Sn 减去 Si−1,以及 1+S1,…,1+Si−1 减去 Si−1,需要令前缀和序列为正整数,只能取 Si−1 最小的中 i 最大的,否则易证前缀和序列中会出现 ≤0 的数。
2. Catalan 数
令 Hn 表示卡特兰数第 n 项,则 Hn 等于长度为 2n 的合法括号串数量。
下面尝试利用 Raney 引理得到 Hn 的通项公式。
将左括号视为 1,右括号视为 −1,则合法括号序列要求前缀和非负。在开头加一个左括号,这样数列的和为 1,并且要求前缀和为正,满足了 Raney 引理的使用条件。
这样数列的总方案数为 (n2n+1),Hn=2n+1(n2n+1)=n+1(n2n)。
3. 例题
考虑令 wi′=wi−1,则合法条件为 wi′ 的前缀和 ≥0,且 ∑wi′=0,但是这次不能直接在前面加 1,因为不能保证最终 1 位于开头。但是发现序列的最小值为 −1,可以尝试将序列取反后翻转,仍然要求前缀和 ≥0,这次序列最大值为 1,于是直接加个 1 就能满足 Raney 引理使用条件,并且能够保证序列第一个位置一定是 1。最终由于需要新加的 1 在最开头,最后除以 m−n+1 即可。
最终答案就是 m−n+1m+1(m+1)!=m−n+1m!。