i 的二次幂求和
学习 自为风月马前卒 大佬的数学笔记
\(i^2\) 求和
查阅资料我们很容易就发现 \(\sum_{i = 1}^ni^2 = \frac{n(n + 1)(2n + 1)}{6}\)
但具体怎么求得的呢?今天偶然间在 Miskcoo大佬的博客中看到了一种脑洞清奇通俗易懂的证明方法
我们要求 \(S_n = \sum_{i = 1}^ni^2\),现在我们对 \(C_n = \sum_{i = 1}^ni^3\) 进行转换
首先列一个恒等式
\[\sum_{i = 1}^{n + 1}i^3 = C_n + (n + 1)^3
\]
这里有个骚操作是把前面的转化一下
\[\sum_{i = 0}^{n}(i+ 1)^3 = C_n + (n + 1)^3
\]
然后就可以推柿子啦,
\[\sum_{i = 0}^ni^3+3i^2+3i+1 = C_n + (n + 1)^3 \\
C_n + 3S_n + 3\frac{n(n + 1)}{2} + (n + 1) = C_n + (n + 1)^3\\
\Rightarrow S_n=\frac{2(n + 1)^3 - 3n(n + 1)-2(n +1)}{6}\\
=\frac{n(n+1)(2n+1)}{6}
\]
同时这个方法具有非常强的扩展性,我们也可以推导出 \(i^k\) 的公式,但是计算起来的复杂度却是\(k^2\)的,感觉还是拉格朗日插值 \(klogk\) 好用一些
把 \(1,2,…n\) 带入维护前缀积后缀积可以做到 \(k logk\)