自然数幂求和方法1:扰动法(求两次)
自然數冪求和方法1:擾動法(求兩次)
先來搞一搞等比數列
標號從1開始,\(a_n=a1*q^{n-1}\)
\(S_n=\sum_{k=1}^n a_k\)
\[\begin{aligned}S_n+a_{n+1}&=a_1+\sum_{k=2}^{n+1} a_k \\ S_n+a_n*q&=a_1+q*S_n \\ S_n&=\frac {a_1-a_n*q} {1-q} \end{aligned}\]
大概就是這樣用兩種不同的方法算同一個東西,來求出公式
\(S_t(n) =\sum\limits_{k=0}^n k^t\)
\[\begin{aligned} S_t(n)+(n+1)^t &=0+ \sum_{k=1}^{n+1} k^t \\ S_t(n)+(n+1)^t &=\sum_{k=0}^{n} (k+1)^t \\ 最后那項二項式展開一下 \\ S_t(n)+(n+1)^t&=\sum_{k=0}^{n} \sum_{i=0}^t \binom t i k^i \\ S_t(n)+(n+1)^t&=\sum_{i=0}^t \binom t i \sum_{k=0}^{n} k^i \\ S_t(n)+(n+1)^t&=\sum_{i=0}^t \binom t i S_i(n) \\ 我們想要的項S_t(n)不見了,沒關系,把t+1代替原來的t \\ S_{t+1}(n)+(n+1)^{t+1}&=\sum_{i=0}^{t+1} \binom {t+1} i S_i(n) \\ S_{t+1}(n)+(n+1)^{t+1}&=\sum_{i=0}^{t-1} \binom {t+1} i S_i(n) + (t+1)*S_t(n)+ S_{t+1}(n)\\ S_t(n)&=\frac 1 {t+1} \left((n+1)^{t+1}-\sum_{i=0}^{t-1} \binom {t+1} i S_i(n)\right) \end{aligned}\]
小結
用這個式子求值可以做到\(O(t^2)\)
但求多項式系數不優\(O(t^3)\)
知道自然數冪求和是個t次多項式的話
高斯消元也可以做到\(O(t^3)\)
\(S_t(n)=\sum\limits_{k=0}^{t+1}a_k*n^k\)
我們求出每個\(n=1...t\)求出\(S_t(n)\)并對應把\(n^k\)代入到多項式中
得到\(t\)條多項式來解就可以解出系數\(a\)了
轉載于:https://www.cnblogs.com/acha/p/6442866.html
總結
以上是生活随笔為你收集整理的自然数幂求和方法1:扰动法(求两次)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开多个bitset和bitset的基本使
- 下一篇: binutils工具集之---nm