第一類斯特林數
定義
$S_1(n,m)$表示$n$個元素,形成$m$個環的方案數,記作$\begin{bmatrix}n\\m\end{bmatrix}$。
其中每個元素是不同的,每個環是相同的。
遞推公式
從實際含義上去考慮,第一類斯特林數遞推公式為:
$\begin{bmatrix}n\\m\end{bmatrix}=\begin{bmatrix}n-1\\m-1\end{bmatrix}+(n-1)*\begin{bmatrix}n-1\\m\end{bmatrix}$
分別對應形成新的環,方案數即$\begin{bmatrix}n-1\\m-1\end{bmatrix}$。
接在原來的一個環中一個元素的后面,方案數即$(n-1)*\begin{bmatrix}n-1\\m\end{bmatrix}$
一些簡單性質
1.第一類斯特林數第$n$行的和為$n!$,即
$\sum \limits_{i=0}^n\begin{bmatrix}n\\i\end{bmatrix}=n!$
考慮$n!$,表示$n$個元素的排列。建立$i \rightarrow p_i$的置換,顯然會形成若干個環。
這與第一類斯特林數在第$n$行的的一種方案是一一對應的。
2.第一類斯特林數的一個用途是用通常冪表示上升冪,有
$x^{\overline n}=\sum \limits_{i=0}^n \begin{bmatrix}n\\i\end{bmatrix}x^i$
證明可以通過數學歸納法。
當$n=0$,原式$x^{\overline 0}=1=x^0$顯然成立。
$x^{\overline n}=\sum \limits_{i=0}^n \begin{bmatrix}n\\i\end{bmatrix}x^i$
設原式在$n$時成立,只要證原式在$n+1$時也成立。
左右同乘$x+n$可得,$x^{\overline n+1}=x^{\overline n}*(x+n)$
$=\sum \limits_{i=0}^n \begin{bmatrix}n\\i\end{bmatrix}x^i*(x+n)$
$=\sum \limits_{i=0}^{n+1} \begin{bmatrix}n+1\\i\end{bmatrix}x^i$
3.對於通常冪,顯然有$x^n=(-x)^n*(-1)^n$
對於下降冪和上升冪,同樣有
$x^{\overline n}=(-x)^{\underline n}*(-1)^n$
$x^{\underline n}=(-x)^{\overline n}*(-1)^n$
將該式代入$x^{\overline n}=\sum \limits_{i=0}^n \begin{bmatrix}n\\i\end{bmatrix}x^i$
整理可得用通常冪表示下降冪的式子
$x^{\underline n}=\sum \limits_{i=0}^n \begin{bmatrix}n\\i\end{bmatrix}(-1)^{n-i}x^i$
求法
對於同一行第一類斯特林數的求解,可以直接利用第二個性質。
對$x^{\overline n}$做分治$fft$即可。
這個做法的復雜度是$O(nlog^2n)$的,可以用一些做法優化到一個log,待補。
第二類斯特林數
定義
$S_2(n,m)$表示$n$個元素,形成$m$個集合的方案數,記作$\begin{Bmatrix}n\\m\end{Bmatrix}$。
其中每個元素是不同的,每個集合是相同的。
遞推公式
從實際含義上去考慮,第二類斯特林數遞推公式為:
$\begin{Bmatrix}n\\m\end{Bmatrix}=\begin{Bmatrix}n-1\\m-1\end{Bmatrix}+m*\begin{Bmatrix}n-1\\m\end{Bmatrix}$
分別對應形成新的集合,方案數即$\begin{Bmatrix}n-1\\m-1\end{Bmatrix}$。
加入任意一個已有的集合,方案數即$m*\begin{Bmatrix}n-1\\m\end{Bmatrix}$
一些簡單性質
1.第二類斯特林數的一個用途是用下降冪表示通常冪,有
$x^n=\sum \limits_{i=0}^n \begin{Bmatrix}n\\i\end{Bmatrix}x^{\underline i}$
證明(1) 通過數學歸納法,與第一類斯特林數的證明類似,這里略過。
證明(2) 考慮$x^n$的實際含義,將$n$個不同元素放入$x$個不同集合中。
有$x^n=\sum_{i=0}^n\begin{Bmatrix}n\\i\end{Bmatrix}\binom{x}{i} i!$
因為第二類斯特林數中的集合是無差別的,所以最后應當乘上$i!$。
整理上式可得要證的式子,實際上這個含有組合數的公式也是有時候要化成的形式。
2.同樣代入負數形式,可得用上升冪表示通常冪的形式,即
$x^n=\sum \limits_{i=0}^n \begin{Bmatrix}n\\i\end{Bmatrix}(-1)^{n-i}x^{\overline i}$。
求法
單點求解第二類斯特林數存在一種$O(n)$的容斥方法。
設共有n個不同元素,為了方便,設共有m個不同集合。
設$g_x$表示恰好$x$個集合為空的方案數。
設$f_x$表示欽定$x$個集合為空的方案數,有
$f_x=\binom{m}{x}(m-x)^n$
$f_x=\sum \limits_{i=x}^{m}\binom{i}{x}g_i$
由二項式反演得
$g_x=\sum \limits_{i=x}^{m}(-1)^{i-x}\binom{i}{x}f_i$。
代入$x=0$,可得
$\begin{Bmatrix}n\\m\end{Bmatrix}=\frac{1}{m!}*\sum \limits_{i=0}^{m}(-1)^i\binom{m}{i}(m-i)^n$
拆一拆就發現這個玩意是個卷積式,所以求同一行第二類斯特林數可以做到$O(nlogn)$。