斯特林数

考了好几次斯特林数了,该认真学学了

第二类斯特林数

  • 也叫斯特林子集数 \(\begin{Bmatrix} n\\k \end{Bmatrix}\),也可记做 \(S(n,k)\),表示将 n 个两两不同的元素,划分为 k 个互不区分的非空子集的方案数。

递推式

\[\begin{Bmatrix} n\\k \end{Bmatrix}=\begin{Bmatrix} n-1\\k-1 \end{Bmatrix}+k\begin{Bmatrix} n-1\\k \end{Bmatrix} \]

  • 边界是 \(\begin{Bmatrix} n\\0 \end{Bmatrix}=[n=0]\)

  • 证明:一个新的数可以当作一个新的子集的方案数,加上放进原来有的子集的方案树

通项公式

\[\begin{Bmatrix} n\\k \end{Bmatrix}=\sum_{i=0}^{k}\frac{(-1)^{k-i}i^n}{i!(m-i)!} \]

  • 证明一下

  • \(G_i\) 表示将 n 个两两不同的元素,划分为 i 个两两不同的可空子集的方案数,有 \(G_i=i^n\)

  • \(F_i\) 表示将 n 个两两不同的元素,划分为 i 个两两不同的非空子集的方案数,有

\[G_i=\sum_{j=0}^{i}\binom{i}{j}F_j \]

  • 这个可以看作是枚举有多少个子集是非空的,然后从k个里选i个子集为非空,再乘上 \(F_i\)

  • 然后根据二项式反演

\[\begin{align*} F_i &=\sum_{j=0}^{i}(-1)^{i-j}\binom{i}{j}G_j \\ &= \sum_{j=0}^{i}(-1)^{i-j}\binom{i}{j}j^n\\ &= \sum_{j=0}^{i}\frac{(-1)^{i-j}j^ni!}{j!(i-j)!} \end{align*}\]

  • 然后发现 \(F_i\) 是区分子集,第二类斯特林数是不区分,这样 \(F_i\) 就是 \(\begin{Bmatrix} n\\i \end{Bmatrix}\)\(i!\)

  • 所以得到

\[\begin{Bmatrix} n\\i \end{Bmatrix}=\sum_{j=0}^{i}\frac{(-1)^{i-j}j^n}{j!(i-j)!} \]

第一类斯特林数

  • 也叫斯特林轮换数 \(\begin{bmatrix}n\\k \end{bmatrix}\) ,也可记做 \(s(n,k)\),表示将 n 个两两不同的元素,划分为 k 个互不区分的非空轮换的方案数。

  • 一个轮换就是一个首尾相接的环形排列

递推式

\[\begin{bmatrix}n\\k \end{bmatrix}=\begin{bmatrix}n-1\\k-1 \end{bmatrix}+(n-1)\begin{bmatrix}n-1\\k \end{bmatrix} \]

  • 证明:第n个元素放到新的轮换的方案数,加上放到前面每个数旁边的方案数

斯特林反演

\[F_i=\sum_{j=0}^{i}\begin{Bmatrix}i\\ j\end{Bmatrix}G_j\Leftrightarrow G_i=\sum_{j=0}^{i}(-1)^{i-j}\begin{bmatrix}i\\ j\end{bmatrix}F_j \]

\[F_i=\sum_{j=0}^{i}\begin{bmatrix}i\\ j\end{bmatrix}G_j\Leftrightarrow G_i=\sum_{j=0}^{i}(-1)^{i-j}\begin{Bmatrix}i\\ j\end{Bmatrix}F_j \]

  • 跟二项式反演挺像,式子不难记。
posted @ 2021-03-09 19:40  Shawk  阅读(176)  评论(0编辑  收藏  举报