伯努利数
定义与公式
我们常用Bi定义第i个伯努利数。
生成函数定义方式:
ez−1z=n=0∑∞Bnn!zn
这里的z∈C(C为复数域)
由于伯努利数是指数型函数的母函数,所以我们对ex进行泰勒展开即可得到。
前9项伯努利数:
B0=1 B1=−21 B2=61 B3=0 B4=−301B5=0 B6=421 B7=0 B8=−301 B9=0
我们不难发现对于Bn,当Bn为奇数且不为1时,Bn=0
其中有些时候定义B1=21,那么对应的生成函数只需改为ez−1zez即可。
递归定义方式:
Bn=[m=0]−k=0∑m−1(km)m−k+1Bk
边界为B0=1,[m=0]表示当m=0时为1,否则为0。
简单应用
i=1∑nik=k+11i=1∑k+1Ck+1iBk+1−i(n+1)i
- 特殊的公式
k=0∑nCn+1kBk=0
Bn=−n+11(Cn+10B0+Cn+11+⋯+Cn+1n−1Bn−1)
我们将生成函数的公式继续变形得到:
=∑i=1∞i!ziz=∑i=0∞(i+1)!zi1
最后就变成了多项式∑i=0∞(i+1)!zi的逆元了,用多项式求逆(NTT)即可在O(nlogn)的时间内预处理前n项。
参考: