第一类斯特林数
定义
(left[egin{matrix}n\mend{matrix}
ight]) 表示将(n)个带标号的元素放入(m)个不带标号的环的方案数
递推式
[left[egin{matrix}n\mend{matrix}
ight]=left[egin{matrix}n-1\m-1end{matrix}
ight]+(n-1)left[egin{matrix}n-1\mend{matrix}
ight]
]
组合意义
考虑最后一个元素:要么重新开一个环,要么加入到已经存在的环当中(即选择一个元素加入到它后面)
边界条件
[left[egin{matrix}n\0end{matrix}
ight]=[n=0]
]
还有一个
[left[egin{matrix}n\mend{matrix}
ight]=sum_{i=1}^nleft[egin{matrix}n-i\m-1end{matrix}
ight](i-1)!inom{n-1}{i-1}
]
即考虑(n) 所在的环,枚举其大小(i) ,((i-1)!) 代表环的方案数,(inom{n-1}{i-1}) 代表从(n-1) 个元素中选出(i-1) 个来和(n) 在一起(注意不是考虑最后一个环,因为这里的环是不带标号的)
性质
[sum_{i=0}^nleft[egin{matrix}n\iend{matrix}
ight]=n!
]
即考虑一个排列可以拆成若干个循环,每个循环都是一个圆排列。
第一类斯特林数求行
第一类斯特林数求列
考虑对于一个大小为(i) 的环排列有((i-1)!) 中方案,则环排列的(EGF)为
[sum_{i=1}^{+infty}(i-1)!frac {x^i}{i!}=sum_{i=1}^{+infty}frac {x^i}i=-ln(1-x)
]
而(left[egin{matrix}n\iend{matrix}
ight]) 含有(i) 个环,那么它的(EGF) 就是(frac{(-ln(1-x))^i}{i!}) ,于是多项式快速幂即可。
第二类斯特林数
定义
(left{egin{matrix}n\mend{matrix}
ight}) 表示将(n) 个带标号的元素放入(m) 个不带标号的集合的方案数
递推式
[left{egin{matrix}n\mend{matrix}
ight}=left{egin{matrix}n-1\m-1end{matrix}
ight}+mleft{egin{matrix}n-1\mend{matrix}
ight}
]
组合意义
考虑最后一个元素:要么自成一个集合,要么放入之前已有的(m) 个集合中
边界条件
[left{egin{matrix}n\0end{matrix}
ight}=[n=0]
]
还有一个
[left{egin{matrix}n\mend{matrix}
ight}=sum_{i=1}^nleft{egin{matrix}n-i\m-1end{matrix}
ight}inom{n-1}{i-1}
]
即考虑(n) 所在的集合,枚举其大小(i) ,(inom{n-1}{i-1}) 代表从(n-1) 个元素中选出(i-1) 个来和(n) 在一起
通项公式
[left{egin{matrix}n\mend{matrix}
ight}=frac 1{m!}sum_{k=0}^m(-1)^{m-k}inom mk k^n
]
推导:
我们首先有
[m^n=sum_{i=0}^minom mileft{egin{matrix}n\iend{matrix}
ight}i!
]
左边代表将(n) 个带标号元素放入(m) 个带标号集合的方案数,其中可能存在空集
右边先枚举(i) 代表非空集个数,而后(inom mi) 代表从(m) 个集合中选出(i) 个作为非空集,(left{egin{matrix}n\iend{matrix}
ight}) 代表将(n) 个带标号元素放入(i) 个不带标号的集合,(i!) 代表将这(i) 个集合带上标号
二项式反演可得
[left{egin{matrix}n\mend{matrix}
ight}m!=sum_{i=0}^minom mi(-1)^{m-i}i^n\
left{egin{matrix}n\mend{matrix}
ight}=frac 1{m!}sum_{k=0}^m(-1)^{m-k}inom mk k^n
]
第二类斯特林数求行就直接按照上式卷积即可
第二类斯特林数求列
考虑一个集合的(EGF) 为
[sum_{i=1}^{+infty}1frac{x^i}{i!}=e^x-1
]
那么(left{egin{matrix}n\mend{matrix}
ight}) 的(EGF) 就是(frac{(e^x-1)^m}{m!}),快速幂即可。
次幂,下降幂和上升幂
[x^n=sum_{i=0}^nleft{egin{matrix}n\iend{matrix}
ight}x^{underline i}\
x^{underline n}=sum_{i=0}^n(-1)^{n-i}left[egin{matrix}n\iend{matrix}
ight]x^i\
x^{overline n}=sum_{i=0}^nleft[egin{matrix}n\iend{matrix}
ight]x^i\
x^n=sum_{i=0}^n(-1)^{n-i}left{egin{matrix}n\iend{matrix}
ight}x^{overline i}
]
恒等式
[sum_kleft[egin{matrix}n\kend{matrix}
ight]left{egin{matrix}k\mend{matrix}
ight}(-1)^{n-k}=[n=m]\
sum_kleft{egin{matrix}n\kend{matrix}
ight}left[egin{matrix}k\mend{matrix}
ight](-1)^{n-k}=[n=m]\
]
斯特林反演
[f(n)=sum_kleft{egin{matrix}n\kend{matrix}
ight}g(k)Leftrightarrow g(n)=sum_k(-1)^{n-k}left[egin{matrix}n\kend{matrix}
ight]f(k)\
f(n)=sum_kleft[egin{matrix}n\kend{matrix}
ight]g(k)Leftrightarrow g(n)=sum_k(-1)^{n-k}left{egin{matrix}n\kend{matrix}
ight}f(k)\
]
可以和以上恒等式互推
更多恒等式
[left[egin{matrix}{n+1}\m+1end{matrix}
ight]=sum_{i=m}^nleft[egin{matrix}n\iend{matrix}
ight]inom im
]
将前(n) 个数划分为(i) 个环排列,而后从中选出(m) 个保留,将剩下的(m-k) 个和(n+1) 一起组成一个环排列。(注意这里有一种一一映射的关系)
[left{egin{matrix}n+1\m+1end{matrix}
ight}=sum_{i=m}^ninom nileft{egin{matrix}i\mend{matrix}
ight}
]
考虑(n+1) 所在的集合有(n+1-i) 个元素,剩下的(i) 个元素形成(m) 个集合。
[left[egin{matrix}{n+1}\m+1end{matrix}
ight]=sum_{i=m}^nleft[egin{matrix}i\mend{matrix}
ight]n^{underline{n-i}}
]
证明和上面类似。
[left{egin{matrix}n+1\m+1end{matrix}
ight}=sum_{i=m}^nleft{egin{matrix}i\mend{matrix}
ight}(m+1)^{n-i}
]
将元素按照编号从小到大的顺序依次考虑。枚举(i) 表示(i+1) 这个元素是第一个属于(n+1) 号元素所在的集合,剩下的(n-i) 个数任意选择集合。