我们知道斯特林数和集合有着密不可分的联系,所以斯特林反演一般就用于集合划分上。
斯特林反演是用来求容斥系数的。
栗子:
直接做很难做。
枚举一个集合划分,对于同一集合的点,不一定要求连通,但是不同集合的点一定不连通。
这个的方案数是很好算的。
我们给它个容斥系数,设为 f(S) f ( S )
对于一个确切的图,假设它有m个连通块,显然当m=1时它才是有用的。
然后你在容斥的时候不是算了个不明不白的东西吗?
你要你乱算的东西里包含这个图,则你集合划分的时候一定是合并了这个图的一些联通块
因此被计算次数为 ∑mi=1Sm,i∗f(i) ∑ i = 1 m S m , i ∗ f ( i )
等式即 [m=1]=∑mi=1Sm,i∗f(i) [ m = 1 ] = ∑ i = 1 m S m , i ∗ f ( i )
斯特林反演:
若有 f(n)=∑ni=1Sn,i∗g(i) f ( n ) = ∑ i = 1 n S n , i ∗ g ( i )
则 g(n)=∑ni=1(−1)n−i∗sn,i∗f[i] g ( n ) = ∑ i = 1 n ( − 1 ) n − i ∗ s n , i ∗ f [ i ]
可以通过结合第一类、第二类斯特林数和下降幂有关的那一部分得到以上的证明。
返回原题:
f(n)=∑ni=1(−1)n−i∗sn,i∗[i=1]
f
(
n
)
=
∑
i
=
1
n
(
−
1
)
n
−
i
∗
s
n
,
i
∗
[
i
=
1
]
=(−1)n−1∗(n−1)!
=
(
−
1
)
n
−
1
∗
(
n
−
1
)
!
很多是否集合划分的容斥系数都是这个,因为 g(m) g ( m ) 一般都是 [m=1] [ m = 1 ]