斯特林数学习笔记

斯特林数学习笔记

前置知识

普通生成函数+下降幂+多项式

定义

斯特林数是组合数学概念,分为第一类斯特林数和第二类斯特林数

第一类斯特林数

第一类斯特林数表示为 [nm],表示 n 个不同的人坐 m 张相同的圆桌的方案数(每张圆桌至少坐一人)。

考虑递推式。当我们新加入一个人的时候,要么坐到一张新的桌子,要么和之前的坐在一起。由于是圆桌,所以我们考虑这个人坐在了哪一个人的左边。于是有递推式:

[nm]=(n1)[n1m]+[n1m1]

递推的复杂度是 O(nm)

第二类斯特林数

第二类斯特林数表示为 {nm},表示 n 个不同的球放进 m 个相同的盒子的方案数(每个盒子至少放一个球)。

考虑递推式。当我们新加入一个球的时候,要么放到一个新的盒子,要么放在之前的盒子里。于是有递推式

{nm}=m{n1m}+{n1m1}

时间复杂度是 O(nm) 的。

如果只需要求单点的值,可以考虑容斥,令 f(x) 表示至少有 x 个盒子空着的情况数。考虑假设 m 个盒子互不相同,那么考虑先选出 x 个盒子不放,剩下的 mx 个盒子可以让 n 个球任意放置,于是有

f(x)=(mx)(mx)n

同时让 g(x) 表示恰好有 x 个盒子空着的情况数,于是有

f(x)=i=xm(ix)g(i)

因为盒子其实本质相同,所以所求即为 g(0)m!,通过二项式反演可得

g(0)m!=i=0n(1)i0(i0)f(i)m!=i=0n(1)i(mi)(mi)nm!

所以

{nm}=i=0n(1)i(mi)(mi)nm!

更多的我们尝试求解其生成函数,令 Fk(x)=i0{ik}xi。那么根据递推式有

Fk(x)=kxFk(x)+xFk1(x)(1kx)Fk(x)=xFk1(x)Fk(x)=xFk1(x)1kx

显然 F0(x)=1,于是可以得到

Fk(x)=xki=1k(1ix)

于是我们得到了 Fk(x) 的封闭形式。

性质

第一类斯特林数

首先有

xn=i0[ni]xi

考虑用数学归纳法证明。

n=0 时,原式写作

1=1

等式对于任意 x 均成立。考虑新加入一个数,要么当作自环,有 x 种染色方案,要么插进之前的一个数字的后面,有 n1 种选择。令 fx(n)=i0[ni]xi,那么则有

fx(n+1)=xfx(n)+nfx(n)=(x+n)fx(n)=(x+n)xn=xn+1

则对于任意 n,x,等式均成立。

接下来有

xn=i=0n(1)ni[ni]xi

可以发现

xn=(1)n(x)n=(1)ni0[ni](x)i=i0(1)n+i[ni]xi=i0(1)ni[ni]xi

第二类斯特林数

xn=i=0n{ni}i!(xi)=i=0n{ni}xi

考虑组合意义,即 n 个不同的球放进 x 个不同的盒子里,盒子可以为空。那么就是枚举具体放进了多少个盒子,从 x 个盒子中选出来,将 n 个球放入有多少方案,接着考虑不同的盒子,因此需要乘上 i!

然后我们发现我们可以将下降幂转化成普通幂,同时也可以将普通幂转化成下降幂。

斯特林反演

形式上和二项式反演类似

f(n)=i=0n{ni}g(i)g(n)=i=0n[ni](1)nif(i)

首先证明一个反转公式

k=mn(1)km{nk}[km]=[m=n]k=mn(1)nk[nk]{km}=[m=n]

证明在于

mn=i=0n{ni}mi=i=0n{ni}j=0i(1)ij[ij]mj=i=0nmij=in(1)ji[ji]{nj}

为了使得等式两边恒等,只有当 i=nj=in(1)ji[ji]{nj}=1,否则结果均为 0。即

j=in(1)ji[ji]{nj}=[i=n]

换元后即可得到

k=mn(1)km{nk}[km]=[m=n]

对于下面的式子,则有

mn=i=0n(1)ni[ni]mi=i=0n(1)ni[ni]j=0i{ij}xj=i=0nmij=in(1)nj[nj]{ji}

接着证明反演公式,如果 g(n)=i=0n[ni](1)nif(i),则

f(n)=i=0n[i=n]f(i)=i=0nf(i)j=in(1)ji{nj}[ji]=i=0n{ni}j=0i(1)ij[ij]f(j)=i=0n{ni}g(i)

而如果 f(n)=i=0n{ni}g(i),则

g(n)=i=0n[i=n]g(i)=i=0ng(i)j=in(1)nj[nj]{ji}=i=0n(1)ni[ni]j=0i{ij}g(j)=i=0n(1)ni[ni]f(i)

由此,我们证明了斯特林反演的公式

f(n)=i=0n{ni}g(i)g(n)=i=0n[ni](1)nif(i)

posted @   DycIsMyName  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示