特殊的数

一些数具有特殊的意义,或是特殊的性质。

错排数

记作\(d_n\)

如何求?

容斥做法

\[d_n=n!-\sum\limits_{1\le k\le n}(-1)^{k-1}\dbinom{n}{k}(n-k)!=n!\sum\limits_{0\le k\le n}(-1)^k\dfrac{1}{k!} \]

递推做法

考虑置换环中:

  • \(n\)所在环的大小\(=2\),那么剩下\(n-2\)个数要是错拍,于是贡献\((n-1)d_{n-2}\)

  • \(n\)所在环的大小\(\ge 3\),那么\(n\)插入之前就应该是错排,一共\(n-1\)个位置可以插入,于是贡献\((n-1)d_{n-1}\)

综上,\(d_n=(n-1)(d_{n-1}+d_{n-2})\)

卡特兰数(\(Catalan\ Number\)

以下记作\(h_n\)

这个数字是很多计数问题的答案,如:

  • 网格图上从\((0,0)\)走到\((n,n)\),不得经过\(y=x\)的方案数。

  • 在圆上任取\(2n\)个点,连出\(n\)条线段且两两不交的方案数。

  • 进栈序列为\(1,2,\dots ,n\)的栈的出栈序列的方案数。

  • \(n\)对括号所能组成的合法括号序列数。

  • \(n\)个节点构成二叉树的方案数。

递推式:

\[\begin{aligned} h_n&=\begin{cases} \sum\limits_{0\le k<n} h_kh_{n-k-1} & n\ge 2\\ 1 & n=0,1\\ \end{cases}\\ &=\dbinom{2n}{n}-\dbinom{2n}{n-1} \end{aligned} \]

顺带把通项写了。

\[h_n=\dbinom{2n}{n}-\dbinom{2n}{n-1}=\dfrac{\dbinom{2n}{n}}{n+1} \]

另一个递推式:

\[h_n=\dfrac{4n-2}{n+1}h_{n-1} \]

证明一下通项:

考虑\(h_n\)的OGF为\(H\),由第一种递推式可以整理出\(H=1+xH^2\)

解得\(H=\dfrac{1\pm \sqrt{1-4x}}{2x}=\dfrac{2}{1\mp \sqrt{1-4x}}\)。由\(H(0)=h_0=1\)可知要取\(H=\dfrac{1-\sqrt{1-4x}}{2x}\)

然后拿二项式定理展开\(\sqrt{1-4x}\)即可。

斐波那契数(\(Fibonacci\ Number\)

斯特林数(\(Stirling\ Number\)

第二类斯特林数

这里先介绍第二类斯特林数(因为它更常用)。

第二类斯特林数:\(n \brace m\),表示将\(n\)个不同物品划分入\(m\)个相同(无标号)非空集合中构成簇(元素为集合的集合)的方案数。

考虑第\(n\)个元素,我们得到了它的递推式和通项公式。

\[{n\brace m}={n-1\brace m-1}+m{n-1\brace m} \]

(考虑组合意义,要么第\(n\)个元素单独构成一个集合,要么第\(n\)个元素选择前\(m\)个集合中的一个插入。)

边界为\({n\brace 0}=[n=0]\)

以及,

\[{n \brace m}=\sum \limits_{i=0}^m (-1)^{m-i}\frac{i^n}{(m-i)!i!} \]

观察通项公式的特点,令\(f_i=\frac{i^n}{i!},g_{m-i}=\frac{(-1)^{m-i}}{(m-i)!}\),则有:

\[{n\brace m}=\sum\limits_{i=0}^mf_ig_{m-i} \]

后面是卷积的形式,可以用\(\mathrm{NTT}\)优化到\(O(m\log m)\)求出一整行(一行指:\(n\brace i\)中,\(n\)相同,\(i=0\dots m\))。

特殊值

  • \({n\brace 0}=[n=0]\)

  • \({n\brace 1}={n\brace n}=1(n>0)\)

  • \({n\brace 2}=2^{n-1}-1(n>0)\)

  • \({n\brace n-1}=\dbinom n2\)

生成函数

\(x\)标识元素个数,\(y\)标识无序集合个数。元素是带标号的,于是无序集合也可以认为带标号(因为其中每个组分带标号)。那么一个元素对应的生成函数就是\(F(x)=x\)。使用有标号\(\text{SET}\)构造来构造出放入一个集合中的元素,由于集合非空,需要去掉空集,再用\(y\)标识无序集合个数,可知一个无序集合的生成函数为\(y(e^x-1)\)

再次对无序集合使用有标号\(\text{SET}\)构造,可知第二类斯特林数的二元生成函数为\(e^{y(e^x-1)}\)

其中在\(x\)上是EGF,在\(y\)上是OGF。分别提取\(\Big[\dfrac{x^n}{n!}\Big]\)\([y^m]\)系数即可得到一行和一列的生成函数。

“在\(x\)上是EGF,在\(y\)上是OGF”,这是为什么?口胡了一个解释是集合本来是无标号的,是有标号的元素作为组分使得它可以当成有标号的。于是标识有标号元素的\(x\)对应的应当是EGF,而标识无标号集合的\(y\)对应的应当是OGF。

和高阶差分的关系

第一类斯特林数

\({n\brack k}\)表示将\(n\)个元素分成\(k\)个轮换的方案数,也即\(n!\)个排列中,有\(k\)个置换环的方案数。

特殊值

  • \({n\brack 0}=[n=0]\)

  • \({n\brack n}=1(n>0)\)

  • \({n\brack 1}=(n-1)!(n>0)\)

  • \({n\brack n-1}=\dbinom{n}{2}\)

不等式

由定义易知\({n\brack k}\ge{n\brace k}\),当且仅当每个轮换至多有\(2\)个元素时等号成立,即\(k=n-1,n\)

递推式

\[{n\brack k}=(n-1){n-1\brack k}+{n-1\brack k-1} \]

即考虑第\(n\)个元素的决策,放在以有的\(k\)个轮换中的一个,有\(n-1\)个位置可以放,或者自己成为一个轮换。

生成函数

一行之和

\[\sum\limits_{0\le k\le n}{n\brack k}=n! \]

由定义可知。

普通幂转下降幂

\[x^n=\sum\limits_{0\le k\le n}{n\brace k}x^{\underline k}=\sum\limits_{0\le k\le n}{n\brace k}{x\choose k}k! \]

证明一:

考虑组合意义。左边相当于将\(k\)个元素放入\(x\)个有标号集合中(集合可以为空)。

右边\(i\)相当于枚举非空集合个数,\({x\choose i}\)表示从\(x\)个集合中选出\(i\)个集合使之非空,\(k\brace i\)表示将\(k\)个元素划分到\(i\)个无标号非空集合中的方案数。由于\(x\choose i\)\(k\brace i\)的集合都无标号,最后乘上\(i!\)让集合有标号。

那么左右两边的组合意义相同,所以相等。

证明二:

一个重要的观察是:\(x^{\underline{k+1}}=x^{\underline k}(x-k)\Rightarrow x\cdot x^{\underline k}=x^{\underline{k+1}}+k\cdot x^{\underline k}\)

于是用数学归纳法和第二类斯特林数的加法公式可以证。

上升幂转普通幂

\[x^{\overline n}=\sum\limits_{0\le k\le n}{n\brack k}x^k \]

观察:\(x^{\overline{k+1}}=(x+k)x^{\overline k}\),且\((x+n-1)x^k=x^{k+1}+(n-1)\cdot x^k\)

下降幂转普通幂

\[x^{\underline n}=\sum\limits_{0\le k\le n}(-1)^{n-k}{n\brack k}x^k \]

注意到上升幂和下降幂有相反的符号即可得到。

普通幂转上升幂

\[x^n=\sum\limits_{0\le k\le n}(-1)^{n-k}{n\brace k}x^{\overline k} \]

注意到\((-x)^{\underline n}=(-1)^nx^{\overline n}\),将\(-x\)代入普通幂转下降幂,然后用注意到的式子即可得到。

posted @ 2024-12-23 18:58  RandomShuffle  阅读(42)  评论(0)    收藏  举报