伯努利数简单学习笔记

伯努利数

定义与公式

我们常用BiB_i定义第ii个伯努利数。

生成函数定义方式:
zez1=n=0Bnznn! \frac{z}{e^z-1}=\sum\limits_{n=0}^\infty B_n\frac{z^n}{n!}
这里的zCz\in CCC为复数域)
由于伯努利数是指数型函数的母函数,所以我们对exe^x进行泰勒展开即可得到。


99项伯努利数:
B0=1   B1=12   B2=16   B3=0   B4=130B5=0   B6=142   B7=0   B8=130   B9=0 B_0=1\ \ \ B_1=-\frac{1}{2}\ \ \ B_2=\frac{1}{6}\ \ \ B_3=0\ \ \ B_4=-\frac{1}{30} \\ B_5=0\ \ \ B_6=\frac{1}{42}\ \ \ B_7=0\ \ \ B_8=-\frac{1}{30}\ \ \ B_9=0

我们不难发现对于BnB_n,当BnB_n为奇数且不为11时,Bn=0B_n=0

其中有些时候定义B1=12B_1=\frac{1}{2},那么对应的生成函数只需改为zezez1\frac{ze^z}{e^z-1}即可。


递归定义方式:
Bn=[m=0]k=0m1(mk)Bkmk+1 B_n=[m=0]-\sum\limits_{k=0}^{m-1}\tbinom{m}{k}\frac{B_k}{m-k+1}
边界为B0=1B_0=1[m=0][m=0]表示当m=0m=0时为11,否则为00

简单应用

  • 自然数幂的前缀和

i=1nik=1k+1i=1k+1Ck+1iBk+1i(n+1)i \sum_{i=1}^ni^k=\frac{1}{k+1}\sum_{i=1}^{k+1}C_{k+1}^iB_{k+1-i}(n+1)^i

  • 特殊的公式
    k=0nCn+1kBk=0 \sum_{k=0}^{n}C_{n+1}^kB_k=0

Bn=1n+1(Cn+10B0+Cn+11++Cn+1n1Bn1) B_n=-\frac{1}{n+1}(C_{n+1}^0B_0+C_{n+1}^{1}+\cdots +C_{n+1}^{n-1}B_{n-1})

我们将生成函数的公式继续变形得到:

=zi=1zii!=1i=0zi(i+1)! =\frac{z}{\sum_{i=1}^{\infty}\frac{z^i}{i!}} \\ =\frac{1}{\sum_{i=0}^{\infty}\frac{z^i}{(i+1)!}}
最后就变成了多项式i=0zi(i+1)!\sum_{i=0}^{\infty}\frac{z^i}{(i+1)!}的逆元了,用多项式求逆(NTT)即可在O(nlogn)O(nlogn)的时间内预处理前nn项。


参考:

posted @ 2018-10-04 08:19  VictoryCzt  阅读(691)  评论(0编辑  收藏  举报