伯努利数

伯努利数是数学中的一个重要概念,其生成函数为B(z) = e^z - 1 / z,该函数涉及到多项式、组合数学和生成函数的理论。递推式(n^2)给出了伯努利数的计算方式。拉格朗日插值公式F(z)用于多项式重建,可以用于在O(k)时间复杂度内求解自然数幂和。然而,这种方法无法直接获取多项式的各项系数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

.
生成函数B(z)=zez−1=∑Bnznn!B(z)=\frac{z}{e^z-1}=\sum B_n\frac{z^n}{n!}B(z)=ez1z=Bnn!zn
递推式(n2n^2n2)
B0=1B_0=1B0=1Bn=−∑k=0n−1CnkBkn−k+1B_n=-\sum_{k=0}^{n-1}C_n^k\frac{B_k}{n-k+1}Bn=k=0n1Cnknk+1Bk
也可以写成这样∑k=0nCn+1kBk=0\sum_{k=0}^nC_{n+1}^kB_k=0k=0nCn+1kBk=0
和自然数幂和的关系

∑k=1nkp=∑j=0p(−1)jCp+1jBjnp+1−jp+1\sum_{k=1}^nk^p=\frac{\sum_{j=0}^p(-1)^jC_{p+1}^jB_jn^{p+1-j}}{p+1}k=1nkp=p+1j=0p(1)jCp+1jBjnp+1j

.
当然有的公式会把(−1)j(-1)^j(1)j那一项去掉不过通常不会有问题,因为除了B1=−12B_1=-\frac{1}{2}B1=21其余B2n+1=0B_{2n+1}=0B2n+1=0,反正注意判断一下就行了


一些其他的东西
已知nnn多项式上的n+1n+1n+1个点,那么我们可以得到这个多项式

F(z)=∑i=0nyi∏j≠i(z−xj)∏j≠i(xi−xj)F(z)=\sum_{i=0}^n\frac{y_i\prod_{j\neq i}(z-x_j)}{\prod_{j\neq i}(x_i-x_j)}F(z)=i=0nj̸=i(xixj)yij̸=i(zxj)

.
这个公式叫拉格朗日插值
其实本质就是构造而已,把这些点带入大概就知道这个式子怎么回事了
这个东西可以在O(k)O(k)O(k)时间复杂度求自然数幂和
首先用线性筛筛出000kkk的k次方之和,这一步要O(k)O(k)O(k)复杂度
让后预处理出1−k1-k1k的阶乘,将每个点(i,ik)(i,i^k)(i,ik)z=nz=nz=n带入上面的式子就可以得到答案了
但是这个东西不能求出各项系数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值