自然数幂求和及其证明

自然数幂求和:

给定正整数$N,K$ , 求 

$$\sum _{i=1}^{N} i^K$$


证明:上式是一个关于$ N $的$ K+1 $次多项式.

定义:对于一个数列$\{ a_n \}$如果数列中的数全部相等,则称其为常数数列。

对于数列$\{ a_n \}$ , 令数列$\{ b_n \}$满足$b_i=a_{i+1}-a_{i}$,那么称$b$是$a$的一阶差分数列,记作$\Delta a$。

平常所说的等差数列的一阶差分数列就是常数数列。

$b$的一阶差分数组为$a$的二阶差分数列,表示为$\Delta ^2 a$.

以此类推 $a$的$p$阶差分数列记为$\Delta^p a=\Delta(\Delta^{p-1} a)$

如果数列 $a$ 的$p$阶差分数列为非0常数数列,则记$a$为$p$阶等差数列。

定理:某个数列是一个$p$阶等差数列当且仅当他的通项公式是一个$p$次多项式。

证明:设数列$\{A_n\}$.其通项公式为$A(x)=\sum t_i x^i$.

设$\{T_n\}$为其一阶差分数列,则有

$$T(x) = A(x+1)-A(x)$$

$$=\sum _{i=0} ^{N} t_i((x+1)^i - x^i)$$

容易发现$T(x)$这个多项式的第$n-1$项系数为0,这就代表着每做一次差分变换,数列的通项公式次数将下降1.

于是定理显然成立。


$$f(x)=\sum _{i=1} ^{x} i^K$$ 

考虑$\Delta f(x)=(x+1)^K$,也就是说$f$的差分数列的通项公式是一个$K$次多项式,这也就说明了$f$实际上是一个$K+1$次多项式。


在证明了它的性质之后,我们就可以用拉格朗日插值法求解这个式子。

首先我们可以在$O(K log K)$时间内求出前$K+2$项。

一般的拉格朗日插值法:

$$f(k) = \sum _{i=0} ^{n} y_i \prod _{i \neq j} \frac{k-x[j]}{x[i]-x[j]}$$

这样是$O(K^2)$的,需要想办法优化,容易发现取值连续,于是上一个套路的优化:

令$pre_i=\prod _{j=0} ^{i} k-x[j] , suf_i=\prod _{j=i+1} ^{n} k-x[j]$

$$f(k) = \sum _{i=0} ^{n} y_i \prod _{i \neq j} \frac{k-x[j]}{x[i]-x[j]}$$

$$= \sum _{i=0} ^{n} y_i \frac{\prod _{i \neq j} k-x[j]}{\prod _{i \neq j}x[i]-x[j]}$$

$$= \sum _{i=0} ^{n} y_i \frac{pre_{i-1} * suf_{i+1}}{(-1)^{N-i} i! (N-i)!}$$

之后这个式子里每一项都很好求了。

题目来源:CF622F

posted @ 2022-10-31 23:26  xxqz  阅读(397)  评论(0编辑  收藏  举报