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

1 min

求多项式数列 an=f(n)a_n=f(n) 的前 nn 项和,只需找出 i=1nik\sum_{i=1}^n i^k 的计算方法,其中 kNk\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+1ik+1)=i=1nj=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+11=j=0ki=1n(k+1j)ij=j=0k1(k+1j)i1nij+(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+1j=0k1(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^jj<kj<k,即求得 k=0,1,2,,m1k=0,1,2,\dots,m-1 的答案就能求出 k=mk=m 的答案。