斯特林数及其性质

本文详细介绍了斯特林数的定义、性质以及如何高效计算第一类和第二类斯特林数,包括行与列的求解方法,并给出了利用生成函数和快速幂技巧的算法实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一类斯特林数

定义

[ 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]=[n1m1]+(n1)[n1m]
因此可以 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=1n[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=0n[ni]xi
    其中, x n ‾ = x ( x + 1 ) . . . ( x + n − 1 ) x^{\overline{n}}=x(x+1)...(x+n-1) xn=x(x+1)...(x+n1),称之为 x x x n n n 次上升幂。对于这个式子,我们可以考虑归纳证明。考虑 k = n − 1 k=n-1 k=n1 时, x i x^i xi 的系数,记作 f ( n − 1 , i ) f(n-1,i) f(n1,i) k = n k=n k=n 时,乘多了个 x + n − 1 x+n-1 x+n1,那么 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(n1,i1)+(n1)f(n1,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=0n(1)ni[ni]xi
    其中, x n ‾ = x ( x − 1 ) . . . ( x − n + 1 ) x^{\underline{n}}=x(x-1)...(x-n+1) xn=x(x1).
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值