第一类斯特林数
定义
[ n m ] \begin{bmatrix}n\\m\end{bmatrix} [nm] 或 s ( n , m ) s(n,m) s(n,m) ,表示 n n n 个不同的数分成 m m m 个无序圆排列的方案数。
这个是可以递推的,考虑最后一个数单独成环还是加入到前面的环中,有:
[ n m ] = [ n − 1 m − 1 ] + ( n − 1 ) [ n − 1 m ] \begin{bmatrix}n\\m\end{bmatrix}=\begin{bmatrix}n-1\\m-1\end{bmatrix}+(n-1)\begin{bmatrix}n-1\\m\end{bmatrix} [nm]=[n−1m−1]+(n−1)[n−1m]
因此可以 O ( n m ) O(nm) O(nm) 求出 { [ i j ] ∣ i ∈ [ 0 , n ] , j ∈ [ 0 , m ] } \{\begin{bmatrix}i\\j\end{bmatrix}|i\in[0,n],j\in[0,m]\} {
[ij]∣i∈[0,n],j∈[0,m]}。
性质
- n ! = ∑ i = 1 n [ n i ] n!=\sum\limits_{i=1}^{n}\begin{bmatrix}n\\i\end{bmatrix} n!=i=1∑n[ni]
一个排列本质上就是由若干个圆排列组成,于是我们可以枚举圆排列的数量。 - x n ‾ = ∑ i = 0 n [ n i ] x i x^{\overline{n}}=\sum\limits_{i=0}^{n}\begin{bmatrix}n\\i\end{bmatrix}x^i xn=i=0∑n[ni]xi
其中, x n ‾ = x ( x + 1 ) . . . ( x + n − 1 ) x^{\overline{n}}=x(x+1)...(x+n-1) xn=x(x+1)...(x+n−1),称之为 x x x 的 n n n 次上升幂。对于这个式子,我们可以考虑归纳证明。考虑 k = n − 1 k=n-1 k=n−1 时, x i x^i xi 的系数,记作 f ( n − 1 , i ) f(n-1,i) f(n−1,i); k = n k=n k=n 时,乘多了个 x + n − 1 x+n-1 x+n−1,那么 f ( n , i ) = f ( n − 1 , i − 1 ) + ( n − 1 ) f ( n − 1 , i ) f(n,i)=f(n-1,i-1)+(n-1)f(n-1,i) f(n,i)=f(n−1,i−1)+(n−1)f(n−1,i),发现这就是第一类斯特林数的递推式呀。 - x n ‾ = ∑ i = 0 n ( − 1 ) n − i [ n i ] x i x^{\underline{n}}=\sum\limits_{i=0}^{n}(-1)^{n-i}\begin{bmatrix}n\\i\end{bmatrix}x^i xn=i=0∑n(−1)n−i[ni]xi
其中, x n ‾ = x ( x − 1 ) . . . ( x − n + 1 ) x^{\underline{n}}=x(x-1)...(x-n+1) xn=x(x−1).