第二类斯特林数
定义 第二类斯特林数 S2(n,k) 表示 {1,2…n} 划分成 k 个非空子集的方案数。
举个例子:
S={1,2,3,4},k=3。
其方案为:
{1,2}∪{3}∪{4},{1,3}∪{2}∪{4},{1,4}∪{2}∪{3}{1}∪{2,3}∪{4},{1}∪{2,4}∪{3},{1}∪{3,4}∪{2}
共计 6 种。故 S2(4,2)=6 。
第二类斯特林数的递推公式推导:
现要求 S2(n,k),考察第 n 个数的情况:
若第 n 个数单独成一个集合,那么有 S2(n−1,k−1) 种情况,即剩下 n−1 个数分成 n−1 个集合,第 n 个数单独分开。
若第 n 个数和其他若干个数共同成一个集合,因为共有 k 个集合,第 n 个数有 k 中加入方式, 于是共计 k×S2(n−1,k) 种情况。
综上,可以得出第二类斯特林数的递推公式:
定理 1.1: S2(n,k)=S2(n−1,k−1)+k×S2(n−1,k)
第一类斯特林数
定义 第一类斯特林数 S1(n,k) 表示 n 个数形成 m 个轮换的方案数。
第一类斯特林数递推公式推导:
现要求 S1(n,k) ,考察第 n 个数的情况:
若第 n 个数单独成一个环,那么有 S1(n−1,k−1) 种情况。
若第 n 个数与其他若干元素一起成一个环,那么 n 共计有 n−1 种加入方式。
综上,可以得出第一类斯特林数的递推公式:
定理 2.1: S1(n,k)=S1(n−1,k−1)+(n−1)S1(n−1,k)
性质 2.2:
-
边界:S1(0,0)=1,S1(n,0)=0
-
S1(n,1)=(n−1)! :即圆排列的方案数。
-
S1(n,n−1)=n(n−1)2 :n 个数中选 2 个数的方案数。
-
n!=n∑i=0S1(n,i):排列和置换是一一对应的关系,置换具有的轮换数是任意的。
指数生成函数与斯特林数
以下用指数生成函数推导了第二类斯特林数的通项公式。
模板题:第二类斯特林数·行 - 洛谷
回顾一下第二类斯特林数的定义:S2(n,k) 表示 n 个有标号球放入 k 个无标号盒子且无空盒的方案数。
考虑如下一个式子 G(x)=(∞∑i=1xii!)k
那么 n![xn]G(x) 表示了 n 个有标号球放入 k 个有标号盒子且无空盒的方案数。
于是 S2(n,k)=n!k 。
下面开始化简:
S2(n,k)=n!k=n!kk=n!k![xn]k∑i=0(ki)eix(−1)k−i=n!k!k∑i=0(ki)inn!(−1)k−i定理3.1: S2(n,k)=1k!k∑i=0(ki)in(−1)k−i
如上,便得到了第二类斯特林数的通项公式。
这允许我们在 O(nlogn) 的时间复杂度内计算第 n 行的斯特林数(NTT)。
模板题 2:第二类斯特林数·列 - 洛谷
这次是固定 k 了,就变成黑色了?。
返回去看我们推出的式子 S2(n,k)=n!kk
设 F(x) 表示 S2(n,k) 的生成函数。
那么 F(x)=∞∑i=0S2(i,k)xii!=(ex−1)kk!
这样,多项式快速幂板子即可。
Bell 数:集合划分计数 - 洛谷
定义 Bell 数 Bn 表示把 n 个有区别的小球放到若干个(任意多个)无区别盒子里的方案数。
即:把集合 1,2…n 划分成若干个不相交非空子集的方案数。
不难发现:Bell 数 Bn 就是第二类斯特林数的前缀和,Bn=∞∑i=0S2(n,i) 。
话不多说,上指数生成函数就对了,设 B(x) 是 {Bn} 的生成函数。
Bn=∞∑i=0nii!=n![xn]∞∑i=0exi!=n![xn]eex−1
于是 B(x)=eex−1。
上升幂与下降幂
斯特林数的另外一种记法是:
-
记第一类斯特林数为 [nm]
-
第二类斯特林数为 {nm}
定理 4.1: xn=∑k{nk}xk––
证明:
用归纳法做个简单的证明。
已知该式在 n−1 时成立,根据 x⋅xk––=xk+1–––––+kxk––
从而
xn=x⋅xn−1=x⋅∑k{n−1k}xk––=∑k{n−1k}xk+1–––––+∑kk⋅{n−1k}xk––=∑k{n−1k−1}xk––+∑kk⋅{n−1k}xk––=∑k{nk}xk––
定理 4.2:x¯¯¯n=∑k[nk]xk
仍然归纳法,类似于定理 4.1 的证明,利用恒等式 (x+n−1)⋅xk=xk+1+(n−1)xk,x¯¯¯n=(x+n−1)⋅x¯¯¯¯¯¯¯¯¯¯n−1
即可得出结论。
总结一下:
-
通常幂转下降幂的系数是第二类斯特林数。
-
上升幂转通常幂的系数是第一类斯特林数。
思考上升幂,下降幂,通常幂之间更多的联系。
推论 4.3:
-
xn––=∑k(−1)n−k[nk]xk
-
xn=∑k(−1)n−k{nk}x¯¯¯k
上述等式成立是因为 xn–– 和 x¯¯¯n 的系数仅正负号不相同,配上容斥系数 (−1)n−k 即可得到上述等式。
更具体的,xn––=(−1)n(−x)¯¯¯n 。
CF1278F Cards 加强版
比较模板的题。
定理 4.4:
-
∑k(−1)n−k{nk}[km]=[n=m]
-
∑k(−1)n−k[nk]{km}=[n=m]
证明 1:
将定理 4.2 代入 4.3.2 可得 xn=∑k,m(−1)n−k{nk}[km]xm
容易知道,仅在 m=n 时其系数为 1 ,否则其系数为 0 。
证明 2:
同理,将定理 4.1 代入 4.3.1 即可。
斯特林反演
定理 5.1: f(n)=n∑k=0[nk]g(n)⇔g(n)=n∑k=0(−1)n−k{nk}f(n)
证明:
与定理 4.4 有密切联系。
g(n)=n∑m=0[m=n]g(m)=n∑m=0n∑k=m(−1)n−k{nk}[km]g(m)=n∑k=0(−1)n−k{nk}k∑m=0[km]g(m)=n∑k=0(−1)n−k{nk}f(k)
定理 5.2: f(n)=n∑k=0{nk}g(n)⇔g(n)=n∑k=0(−1)n−k[nk]f(n)
证明类似于定理 5.1 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】