伯努利数

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

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

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

∑ k = 1 n k p = ∑ j = 0 p ( − 1 ) j C p + 1 j B j n p + 1 − j p + 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那一项去掉不过通常不会有问题,因为除了 B 1 = − 1 2 B_1=-\frac{1}{2} B1=21其余 B 2 n + 1 = 0 B_{2n+1}=0 B2n+1=0,反正注意判断一下就行了


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

F ( z ) = ∑ i = 0 n y i ∏ j ≠ i ( z − x j ) ∏ j ≠ i ( x i − x j ) 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)时间复杂度求自然数幂和
首先用线性筛筛出 0 0 0 k k k的k次方之和,这一步要 O ( k ) O(k) O(k)复杂度
让后预处理出 1 − k 1-k 1k的阶乘,将每个点 ( i , i k ) (i,i^k) (i,ik) z = n z=n z=n带入上面的式子就可以得到答案了
但是这个东西不能求出各项系数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值