斯特林数 笔记
这篇文主要记录一些lizbaka在学习斯特林数时遇到的一些比较关键的点
此文条理较为混乱,不甚完善,主要以作为笔记为目的,仅供参考
第二类斯特林数
第二类斯特林数{nk}表示n个元素划分成k个非空无标号集合的方案数
其递推方程为:
{nk}={n−1k−1}+k×{n−1k}
{00}=1
其意义为,最后一个元素,单独组成一个集合,或加入已有的任意一个集合
第二类斯特林数{nk}又称为“n子集k”
第二类斯特林数的展开式为:
{nk}=k!1i=0∑k(−1)i(ki)(k−i)n
考虑盒子有标号,且允许有空盒的情况
那么有i个盒子为空的方案数即为(ki)(k−i)n
容斥一下,再除以一个阶乘变成无标号的情况即可
进一步整理,式子化为
{nk}=i=0∑ki!(−1)i×(k−i)!(k−i)n
这是一个卷积形式的式子,可以利用FFT/NTT求得
第一类斯特林数
第一类斯特林数[nk]表示n个元素划分成k个圆排列的方案数
其递推方程为:
[nk]=[n−1k−1]+(n−1)×[n−1k]
[00]=1
其意义为,最后一个元素,单独组成一个圆排列,或者插入到已有的任意一个元素的左侧
第一类斯特林数[nk]又称为“n轮换k”
每一个排列都与一个轮换的集合等价*(《具体数学》P217−P218)*
于是有:
k=0∑n[nk]=n!(n≥0)
斯特林数与常幂/下降幂/上升幂
记下降幂:
xn=x×(x−1)×(x−2)⋯×(x−n+1)
记上升幂:
xn=x×(x+1)×(x+2)⋯×(x+n+1)
这常常出现在组合计数中
幂之间的转换公式*(《具体数学》P219−P220)*:
xn=k=0∑n[nk]xk
xn=k=0∑n[nk](−1)n−kxk
xn=k=0∑n{nk}xk=k=0∑n{nk}(−1)n−kxk
事实上,我们可以建立常幂与组合数之间的关系:
xn=k=0∑n{nk}xk=k=0∑n{nk}×k!×(xk)
从而转化到组合数进行求解