斯特林数:stirling
概念:
1、第一类斯特林数:把1~n排列成k个非空循环的方案数,用小写s(n,k)或[n k]表示
2、第二类斯特林数:将1~n排成k个非空集合的方案数,用大写S(n,k)或{n,k}表示
第一类斯特林数:
递推:
边界s(0,0)=1,s(n,k)=0 (n<k)
组合意义:考虑加入n时,可以自己构成环,后者插入一个之前已有的数的后面,复杂度O(nk)
- 与上升幂、下降幂的关系:
上升幂定义:
$$
\ x^ \bar n=x \times (x+1) \times.....\times(x+n-1)
$$
是一个多项式,有
$$
x^ \bar n=\sum_{k=1}^{n}s(n,k)\times x^k
$$
组合意义:考虑把1~n排成k个非空循环序列,然后将每个环染成[1,x]中的某种颜色,等式右边就是枚举环的数量,然后每个环任意染色,等式左边相当与考虑每次加入一个新点n,若构成一个新环,则有x种染色方法,否则插入1个之前已有的数的后面继承其颜色,那么n个点的总方案数就是上升幂
下降幂定义:
$$
x^\bar n=x(x-1)....(x-n+1)
$$
是一个多项式,有:
$$
\ x^\bar n=\sum_{k=1}^{n} \left(-1\right)^ \left(n-k\right)\times s(n,k)\times x^k
$$
-
性质:
$$
s(n,1)=(n-1)!
$$$$
s(n,2)=(n-1)!\times\sum_{i=1}^{n-1}\frac{1}{i}
$$$$
n!=\sum_{k=0}^{n}s(n,k)
$$最后一条的组合意义:任意1个排列可以看成一个置换,那么枚举置换中环的数量然后求和就是全排列
s(n,k) | k=0 | k=1 | k=2 | k=3 | k=4 | k=5 | k=6 |
---|---|---|---|---|---|---|---|
n=0 | 1 | ||||||
n=1 | 0 | 1 | |||||
n=2 | 0 | 1 | 1 | ||||
n=3 | 0 | 2 | 3 | 1 | |||
n=4 | 0 | 6 | 11 | 6 | 1 | ||
n=5 | 0 | 24 | 50 | 35 | 10 | 1 | |
n=6 | 0 | 120 | 274 | 225 | 85 | 15 | 1 |
第二类斯特林数:S(n,k)
递推:
$$
S(n,k)=S(n-1,k-1)+k\times S(n-1,k)
$$
边界S(0,0)=1,S(n,k) = 0(n<k)
组合意义:考虑加入n时,可以自己构成一个集合,或者插入一个1之前已有的集合,复杂度O(nk)。第二类斯特林数也可以用小球模型来描述,其对应:n个不同的球,放进k个相同的盒子,不能有空盒子的方案数
-
与下降幂之间的关系:
$$
x^n=\sum_{k=0}^{n}\times x^\underline k
$$组合意义:给1~n每个数染[1,x]中的某种颜色,方案数为左边x^n右边枚举一共有k种不同的颜色,把1~n分成k个集合(S(n,k))然后每个集合一次染色
-
通项公式(容斥):
$$
S(n.k)=\frac{1}{k!}\sum_{i=0}^{k}\times s(n,i)\times\left(n-k\right)^n
$$组合意义:考虑“n个不同的球,放进k个不同的盒子,可以有空盒子的方案数”,其显然等于k^n。若不能有空盒子,则枚举空盒子的数量i然后容斥,即“n个不同的球,放进k个不同盒子,有至少i个空盒子”的方案数=s(n,i)*(k-i)^n,容斥系数为(-1)^i,最后再除以k!时把盒子不同转化为盒子相同,利用这个容斥可以实现O(nlogn)计算一个S(n,k)
-
与自然数幂和的关系
定义:
$$
F(n)=\sum_{i=1}^{n}i^k
$$暴力计算时间复杂度O(nlogk)
-
使用第二类stiring数转化为下降幂:
$$
F(n)=\sum_{i=1}^{n}\sum_{j=0}^{k}S\{k,j\}=\sum_{i=1}^{n}\sum_{j=0}^{k}S\{k,j\}j!s(i,j)
$$$$
F(n)=\sum_{j=0}^{k}j!\sum_{i=j}^{n}s(i,j)
$$这个式子和n相关的杨辉三角上一列求和,等于右下角
$$
F(n)=\sum_{j=0}^{k}S\{k,j\}j!s(n+1,j+1)
$$这个式子仅枚举k如果O(k^2)预处理S(k,j)那么可以在O(klogk)时间求解上F(n)
-
S(n,k) | k=0 | k=1 | k=2 | k=3 | k=4 | k=5 | k=6 |
---|---|---|---|---|---|---|---|
n=0 | 1 | ||||||
n=1 | 0 | 1 | |||||
n=2 | 0 | 1 | 1 | ||||
n=3 | 0 | 1 | 3 | 1 | |||
n=4 | 0 | 1 | 7 | 6 | 1 | ||
n=5 | 0 | 1 | 15 | 25 | 10 | 1 | |
n=6 | 0 | 1 | 31 | 90 | 65 | 15 | 1 |