多项式数列求和的计算方式

1 min

求多项式数列 an=f(n)a_n=f(n) 的前 nn 项和,只需找出 ∑i=1nik\sum_{i=1}^n i^k 的计算方法,其中 k∈Nk\in \mathbb{N}

k=0k=0 时,∑i=1nik=n\displaystyle \sum_{i=1}^n i^k=n

k=1k=1 时,∑i=1nik=n(n+1)2\displaystyle \sum_{i=1}^n i^k=\frac{n(n+1)}{2}

对于一般的 kk,可用以下方式递归求得

∑i=1n((i+1)k+1−ik+1)=∑i=1n∑j=0k(k+1j)ij\sum_{i=1}^n\bigl((i+1)^{k+1}-i^{k+1}\bigr)=\sum_{i=1}^n \sum_{j=0}^k \binom{k+1}{j}i^j

(n+1)k+1−1=∑j=0k∑i=1n(k+1j)ij=∑j=0k−1(k+1j)∑i−1nij+(k+1)∑i=1nik(n+1)^{k+1}-1=\sum_{j=0}^k \sum_{i=1}^n \binom{k+1}{j}i^j=\sum_{j=0}^{k-1} \binom{k+1}{j} \sum_{i-1}^{n}i^j+(k+1)\sum_{i=1}^n i^k

于是有

∑i=1nik=1k+1((n+1)k+1−∑j=0k−1(k+1j)∑i=1nij)\sum_{i=1}^n i^k=\frac{1}{k+1}\left((n+1)^{k+1}-\sum_{j=0}^{k-1} \binom{k+1}{j} \sum_{i=1}^n i^j\right)

其中右侧的 ∑i=1nij\sum_{i=1}^n i^j 中 j<kj<k,即求得 k=0,1,2,…,m−1k=0,1,2,\dots,m-1 的答案就能求出 k=mk=m 的答案。