• 自然数幂和


    警告:远古时期文章,内容过于naive,有的还没有严谨证明qaq

    问题是这样的:求$0^k+1^k+2^k+\dots +n^k$的通项公式。

    首先,这个因为n可能为0,所以通项公式一定是没有常数项的。继续观察可知,通项公式的次数是$k+1$。这样,我们设通项公式为$f(n)=\sum_{i=1}^{k+1}a_in^i$。我们的目标就是要求出这些系数。

    通项公式满足:

    $$f(n+1)-f(n)=(n+1)^k$$

    这个等式可以直接暴力展开:

    $$f(n+1)-f(n)=(n+1)^k$$

    $$\sum_{i=1}^{k+1}a_i(n+1)^i-\sum_{j=1}^{k+1}a_jn^j=(n+1)^k$$

    $$\sum_{i=1}^{k+1}a_i[(n+1)^i-n^i]=(n+1)^k$$

    $$\sum_{i=1}^{k+1}a_i\sum_{j=0}^{i-1}C_i^jn^j=\sum_{x=0}^{k}C_k^xn^x$$

    等式左右两边都是多项式,可以对比系数。

    暴力展开:

    $$a_1(C^0_1n^0)+a_2(C^0_2n^0+C^1_2n^1)+\dots +a_{k+1}(C^0_{k+1}n^0+C^1_{k+1}n^1+\dots +C^k_{k+1}n^k)=C^0_kn^0+C^1_kn^1+\dots +C^k_kn^k$$

    化简+对比系数:

    $$
    \left
    \{
    \begin{array}{c}
    \sum^{k+1}_{i=1}a_iC^0_i=C^0_k
    \\
    \\
    \sum^{k+1}_{i=2}a_iC^1_i=C^1_k
    \\
    \\
    \dots \dots
    \\
    \\
    \sum^{k+1}_{i=k+1}a_iC^k_i=C^k_k
    \end{array}
    \right. $$

    这个方程我们从后往前迭代解。

    方程解得:

    $$
    \left
    \{
    \begin{array}{c}
    a_{k+1}=\dfrac{1}{k+1}
    \\
    \\
    a_i=\dfrac{C^{i-1}_k-\sum^{k+1}_{j=i+1}a_jC^{i-1}_j}{i}
    \end{array}
    \right. $$

    用这个式子就可以$O(k^2)$用我这个垃圾的做法得出通项公式了。

    可以注意到,当$i$为1时,由上面的式子可得出:

    $\quad a_1=\dfrac{C_k^0-\sum_{j=2}^{k+1}a_jC_j^0}{1}$

    $\quad \quad =1-\sum_{j=2}^{k+1}a_j$

    再变一下就是:

    $$\sum_{i=1}^{k+1}a_i=1$$

    也就是说,通项公式的系数和为1.

    -------------------------------------------------------------

    update on 2020.02.22:

    当然还有复杂度更优的做法,但是我并不会。

  • 相关阅读:
    [P1034][NOIP2001]一元三次方程求解 (二分)
    考前停课集训 Day7 嘞
    [P4995]跳跳!(贪心)
    [P4994]终于结束的起点 (递推)
    考前停课集训 Day6 垒
    [BZOJ1899][ZJOI2004]Lunch 午餐 (DP)
    考前停课集训 Day5 累
    任务查询系统 【主席树】
    主席树入门
    HNOI2002 营业额统计 平衡树模板题 【splay】
  • 原文地址:https://www.cnblogs.com/pjykk/p/11020338.html
Copyright © 2020-2023  润新知