斯特林数相关

第二类斯特林数

定义 第二类斯特林数 S2(n,k) 表示 {1,2n} 划分成 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(n1,k1) 种情况,即剩下 n1 个数分成 n1 个集合,第 n 个数单独分开。

若第 n 个数和其他若干个数共同成一个集合,因为共有 k 个集合,第 n 个数有 k 中加入方式, 于是共计 k×S2(n1,k) 种情况。

综上,可以得出第二类斯特林数的递推公式:

定理 1.1 S2(n,k)=S2(n1,k1)+k×S2(n1,k)

第一类斯特林数

定义 第一类斯特林数 S1(n,k) 表示 n 个数形成 m 个轮换的方案数。

第一类斯特林数递推公式推导

现要求 S1(n,k) ,考察第 n 个数的情况:

若第 n 个数单独成一个环,那么有 S1(n1,k1) 种情况。

若第 n 个数与其他若干元素一起成一个环,那么 n 共计有 n1 种加入方式。

综上,可以得出第一类斯特林数的递推公式:

定理 2.1 S1(n,k)=S1(n1,k1)+(n1)S1(n1,k)

性质 2.2

  • 边界:S1(0,0)=1S1(n,0)=0

  • S1(n,1)=(n1)! :即圆排列的方案数。

  • S1(n,n1)=n(n1)2n 个数中选 2 个数的方案数。

  • n!=i=0nS1(n,i):排列和置换是一一对应的关系,置换具有的轮换数是任意的。

指数生成函数与斯特林数

以下用指数生成函数推导了第二类斯特林数的通项公式。

模板题:第二类斯特林数·行 - 洛谷

回顾一下第二类斯特林数的定义:S2(n,k) 表示 n 个有标号球放入 k 个无标号盒子且无空盒的方案数。

考虑如下一个式子 G(x)=(i=1xii!)k

那么 n![xn]G(x) 表示了 n 个有标号球放入 k 个有标号盒子且无空盒的方案数。

于是 S2(n,k)=n!k![xn](G(x)

下面开始化简:

S2(n,k)=n!k![xn](G(x)=n!k![xn](ex1)k=n!k![xn]i=0k(ki)eix(1)ki=n!k!i=0k(ki)inn!(1)ki定理3.1  S2(n,k)=1k!i=0k(ki)in(1)ki

如上,便得到了第二类斯特林数的通项公式。

这允许我们在 O(nlogn) 的时间复杂度内计算第 n 行的斯特林数(NTT)。

模板题 2第二类斯特林数·列 - 洛谷

这次是固定 k 了,就变成黑色了?。

返回去看我们推出的式子 S2(n,k)=n!k![xn](ex1)k

F(x) 表示 S2(n,k) 的生成函数。

那么 F(x)=i=0S2(i,k)xii!=(ex1)kk!

这样,多项式快速幂板子即可。

Bell 数:集合划分计数 - 洛谷

定义 BellBn 表示把 n 个有区别的小球放到若干个(任意多个)无区别盒子里的方案数。

即:把集合 1,2n 划分成若干个不相交非空子集的方案数。

不难发现:BellBn 就是第二类斯特林数的前缀和,Bn=i=0S2(n,i)

话不多说,上指数生成函数就对了,设 B(x){Bn} 的生成函数。

Bn=i=0n![xn](ex1)ii!=n![xn]i=0exi!=n![xn]eex1

于是 B(x)=eex1

上升幂与下降幂

斯特林数的另外一种记法是:

  • 记第一类斯特林数为 [nm]

  • 第二类斯特林数为 {nm}

定理 4.1 xn=k{nk}xk_

证明:

用归纳法做个简单的证明。

已知该式在 n1 时成立,根据 xxk_=xk+1_+kxk_
从而

xn=xxn1=xk{n1k}xk_=k{n1k}xk+1_+kk{n1k}xk_=k{n1k1}xk_+kk{n1k}xk_=k{nk}xk_

定理 4.2xn¯=k[nk]xk

仍然归纳法,类似于定理 4.1 的证明,利用恒等式 (x+n1)xk=xk+1+(n1)xkxn¯=(x+n1)xn1¯

即可得出结论。

总结一下:

  • 通常幂转下降幂的系数是第二类斯特林数。

  • 上升幂转通常幂的系数是第一类斯特林数。

思考上升幂,下降幂,通常幂之间更多的联系。

推论 4.3

  1. xn_=k(1)nk[nk]xk

  2. xn=k(1)nk{nk}xk¯

上述等式成立是因为 xn_xn¯ 的系数仅正负号不相同,配上容斥系数 (1)nk 即可得到上述等式。

更具体的,xn_=(1)n(x)n¯

CF1278F Cards 加强版

比较模板的题。

定理 4.4

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

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

证明 1

将定理 4.2 代入 4.3.2 可得 xn=k,m(1)nk{nk}[km]xm

容易知道,仅在 m=n 时其系数为 1 ,否则其系数为 0

证明 2

同理,将定理 4.1 代入 4.3.1 即可。

斯特林反演

定理 5.1 f(n)=k=0n[nk]g(n)g(n)=k=0n(1)nk{nk}f(n)

证明:

与定理 4.4 有密切联系。

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

定理 5.2 f(n)=k=0n{nk}g(n)g(n)=k=0n(1)nk[nk]f(n)

证明类似于定理 5.1

posted @   mklzc  阅读(123)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示