Processing math: 100%

伯努利数学习笔记

下 Summer Pockets REFLECTION BLUE 的时候太无聊,于是就来学这个东西了。

伯努利数(Bernoulli number)是由雅各布·伯努利的名字命名的。

定义

我们定义伯努利数 Bn 是满足如下递归式 ni=0(n+1i)Bi=[n=0] 的数列。
定义自然数幂和函数 S(n,k)=n1i=0ik

EGF

首先求出它的 EGF B(z)。定义式两边同加 Bn+1n+1i=0(n+1i)Bi=[n=0]+Bn+1

处理一下就是 ni=0(ni)Bi=[n=1]+Bn

所以 B(z)ez=B(z)+z,即 B(z)=zez1

与自然数幂的转化

S(n,k)=n1i=0ik=1k+1ki=0(k+1i)Binki+1

这玩意大概有两种常见证法。

利用归纳法证明

这个证明方法来自 Concrete Mathematics 6.5 BERNOULLI NUMBER。

S(n,k)+nk+1=n1i=0(i+1)k+1=n1i=0k+1j=0(k+1j)kj=k+1j=0(k+1j)S(n,j)

两边同时减去 S(n,k)

nk+1=kj=0(k+1j)S(n,j)

ˆS(n,k)=n1i=0ik=1k+1ki=0(k+1i)Binki+1,且对于 j[0,k) 均有 S(n,j)=ˆS(n,j) 成立。则需证明 S(n,k)=ˆS(n,k)

则此时 nk+1=k1j=0(k+1j)ˆS(n,j)+S(n,k),故转化为证 nk+1=kj=0(k+1j)ˆS(n,j)

kj=0(k+1j)ˆS(n,j)=kj=0(k+1j)1j+1ji=0(j+1i)Binji+1=kj=0(k+1j)1j+1ji=0(j+1i+1)Bjini+1=kj=0(k+1j)ji=0(ji)Bjini+1i+1=ki=0ni+1i+1kj=i(k+1j)(ji)Bji=ki=0ni+1i+1(k+1i)kj=i(k+1iji)Bji=ki=0ni+1i+1(k+1i)kij=0(k+1ij)Bj=ki=0ni+1i+1(k+1i)[i=k]=nk+1k+1(k+1k)=nk+1

其中倒数第二步用的是定义式。

利用指数生成函数证明

Fn(z)=k0S(n,k)k!zk

Fn(z)=k0S(n,k)k!zk=n1i=0k0ikzkk!=n1i=0eiz=enz1ez1=zez1enz1z=B(z)enz1z=(i0Bii!)(i0ni+1zi(i+1)!)

然后取一项就行了。

S(n,k)=k![zk]Fn(z)=m!ki=0Bii!nki+1(ki+1)!=1k+1ki=0(k+1i)Binki+1

例题

未特别说明时,模数均为998244353

「Luogu 3711」仓鼠的数学题

Luogu 3711

给数列 an,求 Ans(z)=nk=0(S(z,k)+zk)akn2.5×105

nk=0akzk 是个常量可以先扔出来。

Ans(z)nk=0akzk=nk=0S(z,k)ak=nk=0ak1k+1ki=0(k+1i)Bizki+1=nk=0akk!ki=0Bii!zk+1i(k+1i)!=nk=0akk!k+1i=1Bk+1i(k+1i)!zii!=n+1i=1zii!nk=i1(akk!)Bk+1i(k+1i)!

后面那坨是个差卷积,于是翻转一下多项式做完了。

「HDU 6340」Delightful Formulas

HDU 6340

给一个大数 n=m1o=0pαoo 的分解和正整数 K,求 ni=1[gcd(i,n)=1]S(i,K)
m20,K105,po,αo109

首先来个莫比乌斯反演,Ans=d|nμ(d)n/di=1S(id,K)。设 ai=1k+1(k+1j)Bk+1j

Ans=d|nμ(d)K+1j=1ajdjn/di=1ij=d|nμ(d)K+1j=1ajdjj+1i=1(nd)i1j+1(j+1i)Bj+1i

到这里,枚举 c=ji+1[0,K+1]

Ans=d|nμ(d)c=1KdcK+1j=1ajnjc1j+1(j+1c+1)Bc+1=Kc=1Bc+1K+1j=1ajj+1(j+1c+1)njcd|ndcμ(d)=K+1c=0BcK+1j=1ajj+1(j+1c)njc+1d|ndc1μ(d)

发现 d|ndcμ(d)=o=0(1po),所以考虑 Fc=K+1j=1ajj+1(j+1c)njc+1,我们要对于 c[0,K+1] 全求出来。

Fc=K+1j=1ajj+1(j+1c)njc+1=1c!K+1j=1ajj!njc+1(jc+1)!

又是差卷积,稍微算算发现 Kj+c[K1,K],所以设 bi=nKi+2(Ki+2)!
就变成求 Fc=K+1j=1ajj!bK+1j+c。(这个 ai 其实拆开形式比较好)

于是做完了。记得乘上一堆麻烦的系数。

0 comments
Anonymous
Markdown is supported

Be the first guy leaving a comment!