zoukankan      html  css  js  c++  java
  • 自然数幂求和方法1:扰动法(求两次)

    自然数幂求和方法1:扰动法(求两次)

    先来搞一搞等比数列
    标号从1开始,(a_n=a1*q^{n-1})
    (S_n=sum_{k=1}^n a_k)

    [egin{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) =sumlimits_{k=0}^n k^t)

    [egin{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 inom t i k^i \ S_t(n)+(n+1)^t&=sum_{i=0}^t inom t i sum_{k=0}^{n} k^i \ S_t(n)+(n+1)^t&=sum_{i=0}^t inom t i S_i(n) \ 我们想要的项S_t(n)不见了,没关系,把t+1代替原来的t \ S_{t+1}(n)+(n+1)^{t+1}&=sum_{i=0}^{t+1} inom {t+1} i S_i(n) \ S_{t+1}(n)+(n+1)^{t+1}&=sum_{i=0}^{t-1} inom {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} inom {t+1} i S_i(n) ight) end{aligned}]

    小结

    用这个式子求值可以做到(O(t^2))
    但求多项式系数不优(O(t^3))
    知道自然数幂求和是个t次多项式的话
    高斯消元也可以做到(O(t^3))
    (S_t(n)=sumlimits_{k=0}^{t+1}a_k*n^k)
    我们求出每个(n=1...t)求出(S_t(n))并对应把(n^k)代入到多项式中
    得到(t)条多项式来解就可以解出系数(a)

  • 相关阅读:
    1438.最小公倍数
    1441.人见人爱A^B
    1083.特殊乘法
    1153.括号匹配
    1089.数字翻转
    1042.coincidence(动态规划求最长公共子序列)
    图的m着色问题pascal程序
    最佳调度问题pascal程序
    试卷批分打表程序
    迷宫问题pascal程序
  • 原文地址:https://www.cnblogs.com/acha/p/6442866.html
Copyright © 2011-2022 走看看