学习 自为风月马前卒 大佬的数学笔记
(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 + 3frac{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)