斯特林数
数学
第二类斯特林数
我们定义 \(\begin{Bmatrix}n\\m\end{Bmatrix}\) 表示把 \(n\) 个数划分到 \(m\) 个非空集合的方案数,这个就是第二类斯特林数。
怎么求呢?有 \(O(nm)\) 的递推式:
\[\begin{Bmatrix}n\\m\end{Bmatrix} = \begin{Bmatrix}n-1\\m-1\end{Bmatrix} + m \begin{Bmatrix}n-1\\m\end{Bmatrix}
\]
很好理解啊,就是新来一个数看他是放到一个已有集合里还是新开集合。
还有
\[m! \begin{Bmatrix}n\\m\end{Bmatrix} = \sum_{i=0}^{m} (-1)^m \begin{pmatrix}m\\i\end{pmatrix} (m-i)^n
\]
这个也好说,就是先钦定集合有顺序,那么就可以容斥枚举空的集合。
我们定义 $n^{\underline{k}} = \sum_{i=0}^{k - 1} (n-i), n^{\overline{k}} = \sum_{i=0}^{k - 1} (n+i) $
有什么用呢?
可以转化整次幂,有:
\[m^n = \sum_{i=0}^{m} \begin{pmatrix}m\\i\end{pmatrix} \begin{Bmatrix}n\\i\end{Bmatrix} i! = \sum_{i=0}^{m} m^{\underline{i}} \begin{Bmatrix}n\\i\end{Bmatrix}
\]
这样就有一个把整次幂转化成下降幂的做法,由于下降幂可以拆成组合数,有时候就能做进一步推导。
如果我们把 \(m = -m\) 带入上一个式子,那么就有:
\[(-1)^n m^n = \sum_{i=0}^{m} (-m)^{\underline{i}} \begin{Bmatrix}n\\i\end{Bmatrix} = \sum_{i=0}^{m} (-1)^i m^{\overline{i}} \begin{Bmatrix}n\\i\end{Bmatrix}
\]
移项,就有:
\[m^n = \sum_{i=0}^{m} (-1)^{n-i} m^{\overline{i}} \begin{Bmatrix}n\\i\end{Bmatrix}
\]
这样就有一个把整次幂转化成上升幂的做法。
第一类斯特林数
我们称 \(\begin{bmatrix}n\\m\end{bmatrix}\) 表示把 \(n\) 个数划分到 \(m\) 个非空环里面的方案数, 这个是第一类斯特林数。
类似的,有:
\[\begin{bmatrix}n\\m\end{bmatrix} = \begin{bmatrix}n-1\\m-1\end{bmatrix} + (n-1) \begin{bmatrix}n-1\\m\end{bmatrix}
\]
然后我们发现:
\[m^{\overline{n}} = \sum_{i=0}^m \begin{bmatrix}n\\i\end{bmatrix} m^i
\]
这个是为什么呢,这个可以看作是展开多项式的结果,我们发现展开 \(m^{\overline{n}}\) 的过程,跟递推式一样。
同样的,把 \(m = -m\) 带入进去,就有:
\[m^{\underline{n}} = \sum_{i=0}^m (-1)^{n-i} \begin{bmatrix}n\\i\end{bmatrix} m^i
\]
我们列一下上面的 \(4\) 个式子:
\[m^n = \sum_{i=0}^{m} m^{\underline{i}} \begin{Bmatrix}n\\i\end{Bmatrix}
\]
\[m^n = \sum_{i=0}^{m} (-1)^{n-i} m^{\overline{i}} \begin{Bmatrix}n\\i\end{Bmatrix}
\]
\[m^{\overline{n}} = \sum_{i=0}^m m^i \begin{bmatrix}n\\i\end{bmatrix}
\]
\[m^{\underline{n}} = \sum_{i=0}^m (-1)^{n-i} m^i \begin{bmatrix}n\\i\end{bmatrix}
\]
通过斯特林数就可以实现上升幂,整次幂,下降幂的转化。
怎么记忆?我们发现从小往大转化需要乘容斥系数,然后从整次幂转化出去的要用第二类,转化成整次幂的要用第一类。
斯特林数反演
就是:
\[f(n) = \sum_{i=0}^n g(i) \begin{Bmatrix}n\\i\end{Bmatrix} \Longleftrightarrow g(n) = \sum_{i=0}^n (-1)^{n-i} f(i) \begin{bmatrix}n\\i\end{bmatrix}
\]
不会解释,容易发现上面的两个式子就有两组斯特林数反演。

浙公网安备 33010602011771号