贝尔数

Bn 是集合大小为 n 的集合的划分数目,注意这里划分成多少个集合都是可以的。根据贝尔数的定义我们就可以得到贝尔数和第二类斯特林数之间的关系:

i=0nS(n,i)=Bn

递推公式#

贝尔数有递推公式:

Bn=i=0n1(n1i)Bi

考虑如何证明这个式子。我们考虑第 n 个元素,如果它与 k 个元素划分到一个集合中去,那么我们要做的就是把剩下的 nk1 个元素进行划分,方案数就是 (n1k)Bnk1=(nnk1)Bnk1 由此不难得出原式。

性质#

  • Bn+m=j=0mi=0njni{mj}(ni)Bi

证明:我们考虑这个式子的组合意义,这 m 个元素怎么分配,枚举 j 表示分配到 j 个集合里,然后考虑这 n 个元素如何分配,我们枚举 i 个单独分配,分配方案就是 Bi,然后把剩下的放在那 j 个集合里,方案数为 jni。所以这个式子成立。

  • Touchard 同余:Bp+nBn+Bn+1modp

根据第二类斯特林数的递推公式 :

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

我们可以得到,当 n 为质数时,1<m<n 时有 {nm}0modn 成立。具体证明在博主的另一篇博客《斯特林数与斯特林反演中》提到,这里不再赘述。

我们用第一条性质把 Bn+p 展开得到:

Bn+p=i=0nj=0pjni{pj}(ni)Bi=j=0p{pj}i=0njni(ni)Bi

根据第二类斯特林数上面所述的性质,在 mod p 意义下,当 1<j<p 时为 0,而当 j=0 时根据第二类斯特林数的定义,也为 0,所以上面这个式子可以化简如下:

{p1}i=0n(ni)Bi+{pp}i=0npni(ni)BiBn+1+Bn

后面那个式子之所以成立是因为当且仅当 i=n 的时候后面那个式子才不会被 mod p 给模掉。

  • r=0k(1)r(kr)Bnr+1=r=0nk(nkr)Bnr

注意到 k=0 时的情况是平凡的。我们考虑对 k 归纳证明,我们分别让 F(n,k) 等于等号两边的式子,通过对两边都进行证明 F(n,k)F(n1,k)=F(n,k+1) 就可以证明。

这里只证明等号左边满足这个式子,等号右边同理。

F(n,k)=r=0k(1)r(kr)Bnr+1,那么我们可以得到:

F(n1,k)+F(n,k+1)=r=0k(1)r(kr)Bnr+r=0k+1(1)r(k+1r)Gnr+1=Gn+1+r=1k+1(1)r(kr)Gnr+1=F(n,k)

  • Bn+pmmBn+Bn+1modp

这个式子可以看作是上面那个式子的一个扩展,我们同样利用第一条性质把这个东西展开得到:

Bn+pm=j=0ni=0pmjpmi{nj}(pmi)Bi

根据卢卡斯定理,我们可以得到 (pmr)0modp(0<r<pm),所以上面这个式子在 mod p 意义下就可以写成:

Bn+pmj=0n{nj}(jpmB0+Bpm)j=0n{nj}(j+Bpm)

通过让性质 1n=1 我们可以得到一个式子:

B1+m=j=0m(j+1){mj}

所以我们可以得到:

Bn+pm(Bpn1)j=0n{nj}+j=0n(j+1){nj}=(Bpm1)j=0n{nj}+Bn+1=(Bpm1)Bn+Bn+1

所以现在我们只需要证明下面这个结论:

Bpmm+1modp

我们考虑如何证明,这里会用得到一点抽象代数中的定义,不过基本还是初等方法。

这里 Z/pmZ 指的是 pm 的完全剩余系。对于 x,yZ/pmZ,定义 fy(x)=x+ymodpm,设 P 是这个剩余系的一个划分,那么 fy(P) 表示的就是对这个划分中的每一个集合的每一个元素进行操作所得到的划分,于是 fy(P) 就可以理解成一个类似于置换的东西。设 X={fy(x)|yZ},定义一个划分 P 为不动的指的是 fy(x)X,P=fy(P) .其实这个东西等价于 P=fy(P)。同样我们也可以定义不动的划分,有以下性质:任何非不动的划分必然属于一个大小为 P 的正整数幂的轨道。

容易发现这个轨道的大小就是最小的 k 满足 fk(P)=P,我们已经知道有 fpm=P,这其实就是一个不断执行 pmf1 的过程,我们可以形象的把这个过程看做一个环,那么我们在这个环上走 pm 次一定能够走回源点,那么这也就是说,环的长度一定能够乘除 pm,而在非不动的意义下,我们也可以得到 f1(P)P,所以我们最终可以得到以上性质,这告诉我们,所有非不动的划分的数量可以被 p 整除,这也就是说,总的划分数量,即 Bpm,和不动的划分的数量在模 p 的意义下相等。

假设一个划分 P 是不动的,a,b 分别在这个划分的某个集合中 A,B 中,明显 fba(a)=b 又因为这个划分是不动的,所以我们有 fba(A)=B,因此在一个不动的划分中,所有划分出的集合大小都相等,不妨设为 pj,我们考虑证明这个划分有以下性质:在一个集合中的所有元素模 pmj 都相同。

我们用反证法来证明这个性质,设 P 是一个不动的划分,APa,bA,并且 abmodpmj 所以 fba(a)=b,所以 fba 是一个把 A 映射到 A 的映射,因此对于任意的正整数 r,我们有 fr(ba)(a)A 中的某个元素,显然 fr(ba)(a)fs(ba)(a)modpm,当且仅当 a+r(ba)a+s(ba)modpm,有假设可知 rs,因此对于 1rpj+1 fr(ba)(a) 都是不同的元素,这表明 |A|>pj 矛盾。

于是这告诉我们,对于划分中的集合大小都为 pj 的不动的划分,它是唯一的。于是这样的集合个数就为 m+1 个,于是我们可以得到 Bpmm+1。由此上面的性质得以证明。

Bn=Bn 也就是说我们规定了一个符号。

我们考虑证明一个更强的性质:Bkps+nBn(B+s)k

我们考虑证明当 s 固定的时候,对于所有的 kn 上面这个式子成立,我们考虑对 k 进行归纳,当 k=1 的时候我们已经证明这个是对的,则:

B(k+1)ps+nBkps+ps+nBps+n(B+s)kBn(B+s)k+1

由此我们可以得到这个性质成立。

其实如果我们不知道 k=1 的时候式子成立也可以证明,我们考虑这个式子在 s=0 的时候显然成立,我们考虑取 k=1s 进行归纳也可以证明这个式子的正确性。

由此我们可以在把这个同余性质加强一下,贝尔数满足:

Gkrpr(G+r)kr

证明这个式子,只需要把上面那个更强的式子进行迭代使用。

由此我们可以得到这样的一个式子:

Gpp1p1+nGnmodp

证明:

Gpp1p1+nGpp1+pp2+...1+nGn+1(G+p1)...(G+1)

不难发现这就是一个下降幂的形式,根据第二类斯特林数的性质,我们可以得到:

Gn+1(Gp11)=Gn+pGn+1=Gn

所以我们可以得到以下的性质:

  • 贝尔数模素数 p 的周期为 pp1p1

贝尔三角形#

我们可以通过构造贝尔三角形来得到贝尔数,具体方法如下:b1,1=1bk,1=bk1,k1bx,y=bx,y1+bx1,y1

这样构造,每一行的第一个数就是贝尔数,即 bk,1=Bk

这样构造的原因如下:

我们知道:ΔBm=Bm+1Bm,不难发现并证明:

ΔnBm=k=0n(1)nk(nk)Bm+k

我们令 m=1 可以得到:

ΔnB1=k=0n(1)nk(nk)Bk+1=k=0n(1)nk(nk)j=0k(kj)Bj=j=0nk=jn(1)nk(nk)(kj)Bj=j=0nBj(nj)k=jn(1)nk(nkkj)=j=0nBj(nj)j=0nk(1)j(nkj)=j=0nBj(nj)[k=n]=Bn

那么我们就可以利用差分公式计算贝尔数。

这个公式提示我们,如果我们按照上面的方式去构造贝尔数的话,不难发现前几项的规律,把没一行的最后一个数往前拆,就会发现这个东西其实就是 ΔnB1。其实就是不断往下做差分的过程。我们看这个三角形的局部:

  1
  1 2
  2 3 5
  5 7 10 15
  15 20 27 37 52

就会发现下一行的差分是这一行。

那么这个三角形怎么理解呢?我们这样来理解,设 ai,j 表示第 i 行的第 j 个数,我们首先来看第一列,不难发现,这一列数全部是 ΔnB1,然后第二列数,不难发现,这一列数全是 ΔnB2,后面依次类推,那么它是怎么保持这种性质的呢?原因在于:

Bn=ΔBn1+Bn1ΔnBn=Δn+1Bn1+ΔnBn1

注意我们消除而加上 Δ 算子必须要满足的条件是我们应用的式子没有依靠于这个数列的特殊性质。

由上面这个式子可以知道递推式子成立,再由 ΔnB1=Bn 就可以知道我们把每一行的最后一个数抄下来当做第一行的第一个数的原因了。

生成函数#

设贝尔数的 EGF 为 f(x),由此我们可以得到:

f(x)=i0Bii!xi

我们对上面这个东西进行求导可以得到:

f(x)=i0Bi+1i!xi=i0xii!ij(ij)Bj=j0Bjxjj!ijxij(ij)!

众所周知,我们把 ex 在原点处的泰勒展开式写出来可以得到:

ex=i0xii!

eix 在原点处的泰勒展开式写出来可以得到:

eix=j0xjijj!

所以原式我们可以继续写得到:

LHS=j0Bjxjj!ex=f(x)ex

由此我们可以得到 f(x) 的封闭形式为 f(x)=eex+c。由 f(0)=1 我们可以得到 c=1,所以 f(x)=eex1

至此我们得到贝尔数 EGF 的封闭形式。

g(x)=eex,我们把指数上的 ex 看做一个整体,然后我们可以得到 eex=i0exii!

所以我们可以得到 f(x)=1eg(x)=1ei0exii!

我们继续推可以得到:

LHS=1ei0exii!=1ei01i!j0ijxjj!=1ej0xjj!i0iji!

我们去式子两边 xnn! 的系数,就可以得到:Bn=1ei0ini!(Dobinski公式)。

引用

posted @   NuclearReactor  阅读(201)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示
主题色彩