根据等差数列求和公式,我们知道 ∑ i = 1 n i = n ( n − 1 ) 2 \sum\limits_{i=1}^n i=\dfrac {n(n-1)}{2} i=1∑ni=2n(n−1)。那么 ∑ i = 1 n i 2 \sum\limits_{i=1}^ni^2 i=1∑ni2 的公式是什么呢?
平方和公式:
∑ i = 1 n i 2 = n ( n + 1 ) ( 2 n + 1 ) 6 \sum\limits_{i=1}^{n}i^2=\frac{n(n+1)(2n+1)}{6} i=1∑ni2=6n(n+1)(2n+1)
证明考虑数学归纳法。
对于 n = 1 n=1 n=1 和 n = 0 n=0 n=0,原式显然成立。
假设对于 n − 1 n-1 n−1 的公式已经得到证明,考虑对于 n ( n > 1 ) n(n>1) n(n>1):
∑ i = 1 n i 2 = n 2 + ∑ i = 1 n − 1 i 2 = n 2 + ( n − 1 ) n ( 2 n − 1 ) 6 = 6 n 2 + 2 n 3 − 3 n 2 + n 6 = 2 n 3 + 3 n 2 + n 6 \sum\limits_{i=1}^ni^2=n^2+\sum\limits_{i=1}^{n-1}i^2\\ = n^2+\frac{(n-1)n(2n-1)}{6}\\ =\frac{6n^2+2n^3-3n^2+n}{6}\\ =\frac{2n^3+3n^2+n}{6} i=1∑ni2=n2+i=1∑n−1i2=n2+6(n−1)n(2n−1)=66n2+2n3−3n2+n=62n3+3n2+n
考虑对分子因式分解。
∑ i = 1 n i 2 = 2 n 3 + 3 n 2 + n 6 = n ( n + 1 ) ( 2 n + 1 ) 6 \sum\limits_{i=1}^ni^2=\frac{2n^3+3n^2+n}{6}=\frac{n(n+1)(2n+1)}{6} i=1∑ni2=62n3+3n2+n=6n(n+1)(2n+1)
于是得证。
本来 O ( n ) O(n) O(n) 的求值,直接变成了 O ( 1 ) O(1) O(1)。在某些时候,比如杜教筛可能有 O ( n ) O(\sqrt{n}) O(n) 的整除分块,这时候这一个小公式就很关键了。
发现二次方和一次方求和的公式很像。
继续探究:立方和公式。
百度发现,立方和公式长这样:
∑ i = 1 n i 3 = n 2 ( n + 1 ) 2 4 \sum\limits_{i=1}^{n}i^3=\frac{n^2(n+1)^2}{4} i=1∑ni3=4n2(n+1)2
证明同样考虑数学归纳法,人力问题,不再展开。
到这里发现三次方与前两个公式的共同处变少了,内在的规律比较复杂。
再给出四次方和公式。
∑ i = 1 n i 4 = n ( n + 1 ) ( 2 n + 1 ) ( 3 n 2 + 3 n − 1 ) 30 \sum\limits_{i=1}^ni^4=\dfrac{n(n+1)(2n+1)(3n^2+3n-1)}{30} i=1∑ni4=30n(n+1)(2n+1)(3n2+3n−1)
由于作者只是一个初三蒟蒻,没有实力,也没有精力和时间去探索更加高阶的 m m m 次方求和公式(即 ∑ i = 1 n i m \sum\limits_{i=1}^ni^m i=1∑nim),其中的复杂度难以想象,于是就此打住。
给出探究 m m m 次方的一种可能思路:使用生成函数。