前言:
搞算法,做数学,求和的时候往往会遇到平方求和,立方求和。但是求和的公式并不是那么好背,网上搜一搜都是千篇一律的三次方差,四次方差相减求和相消,一堆数字看着人头皮发麻。。。
而用组合数就灵活得多~
证明1(平方求和): ∑i=1n(i2)=∑i=1n[i×(i−1)+i]\sum_{i = 1}^{n}\left(i^{2}\right)=\sum_{i=1}^{n}\left[i\times (i-1)+i\right]∑i=1n(i2)=∑i=1n[i×(i−1)+i]
=2∑i=1n[i×(i−1)1×2]+∑i=1ni=2\sum_{i=1}^{n}\left[\frac{i\times(i-1)}{1\times 2}\right] + \sum_{i=1}^{n}i=2∑i=1n[1×2i×(i−1)]+∑i=1ni
=2∑i=2nCi2+∑i=1ni=2\sum_{i=2}^{n}C_{i}^{2} + \sum_{i=1}^{n}i=2∑i=2nCi2+∑i=1ni (这里的组合数求和方法高中至少学过四种)
=2×Cn+13+n×(n+1)2=2\times C_{n+1}^{3}+ \frac{n \times (n+1)}{2}=2×Cn+13+2n×(n+1)
=n×(n+1)×(2n+1)6=\frac{n\times(n+1)\times(2n+1)}{6}=6n×(n+1)×(2n+1)
证明2(立方求和)(方法同上类似): ∑i=1ni3=∑i=1n[i2×(i+1)−i2]\sum_{i=1}^{n}i^{3}=\sum_{i=1}^{n}\left[i^{2}\times (i+1) - i^{2}\right]∑i=1ni3=∑i=1n[i2×(i+1)−i2]
=∑i=1n[i×(i+1)×(i−1+1)−i2]=\sum_{i=1}^{n}\left[ i\times(i+1)\times(i-1+1) - i^{2}\right]=∑i=1n[i×(i+1)×(i−1+1)−i2]
=∑i=1n[(i−1)×i×(i+1)+i×(i+1)−i2]=\sum_{i=1}^{n}\left[ (i-1)\times i\times(i+1) +i\times(i+1)- i^{2}\right]=∑i=1n[(i−1)×i×(i+1)+i×(i+1)−i2]
=6×∑i=2nCi+13+2×∑i=1nCi+12−∑i=1ni2=6\times\sum_{i=2}^{n}C_{i+1}^{3}+2\times\sum_{i=1}^{n}C_{i+1}^{2}-\sum_{i=1}^{n}i^{2}=6×∑i=2nCi+13+2×∑i=1nCi+12−∑i=1ni2 (这里就用到了证明1的平方求和结论)
=6×Cn+24+2×Cn+23−n×(n+1)×(2n+1)6=6\times C_{n+2}^{4} + 2 \times C_{n+2}^{3}-\frac{n\times(n+1)\times(2n+1)}{6}=6×Cn+24+2×Cn+23−6n×(n+1)×(2n+1)
=(n+2)×(n+1)×n×(n−1)4+(n+2)×(n+1)×n3−n×(n+1)×(2n+1)6=\frac{(n+2)\times(n+1)\times n\times(n-1)}{4}+\frac{(n+2)\times (n+1)\times n}{3} -\frac{n\times (n+1)\times (2n+1)}{6}=4(n+2)×(n+1)×n×(n−1)+3(n+2)×(n+1)×n−6n×(n+1)×(2n+1)
=[n×(n+1)2]2=\left[\frac{n\times(n+1)}{2}\right]^{2}=[2n×(n+1)]2
总结:
很巧妙,本来无从下手的式子,化成组合数的形式再求和就变得迎刃而解。
而究其组合数的本质,这个东西说白了不就是由加减乘除这些基本的运算组成的吗,但是“组合”起来就有了它自己的性质。
这和OOP的思想有异曲同工之妙,或许为我们以后解决问题提供了更高一阶的角度。
本文介绍了一种使用组合数简化平方和及立方和求解的方法。通过巧妙转换,原本复杂的求和问题变得简单易懂。
3563

被折叠的 条评论
为什么被折叠?



