zoukankan      html  css  js  c++  java
  • 伯努利数和自然数幂和

    定义:(B(x)=sum_nfrac{B_nx^n}{n!}=frac{x}{e^x-1})

    易得递推式:(B_0=1,sum_{i=0}^ninom{n+1}{i}B_i=0)


    自然数幂和:(f(n,k)=sum_{i=1}^{n} i^k)

    定义(n)相同的自然数幂和的EGF:(F_n(x)=sum_{k} f(n,k)frac{x^k}{k!})

    [F_n(x)=sum_{k} f(n,k)frac{x^k}{k!}\ =sum_{k} frac{x^k}{k!} sum_{i=1}^n i^k\ =sum_{i=1}^n sum_k frac{(ix)^k}{k!}\ =sum_{i=1}^n e^{ix}\ =frac{e^{(n+1)x}-e^x}{e^x-1} ]

    [=B(x)e^x(e^{nx}-1)frac{1}{x}\ 令:B'(x)=B(x)e^x=x+B(x)\ (B'只是个符号和求导无关)\ F_n(x)=B'(x)(e^{nx}-1)frac{1}{x}\ f(n,k)=k!sum_{i=0}^{k}frac{n^{k+1-i}}{(k+1-i)!}frac{B'_i}{i!}\ =frac{1}{k+1}sum_{i=0}^{k}inom{k+1}{i}n^{k+1-i}B'_{i} ]

    注意这里最后用的(B'):实际上伯努利数分(B^+)(B^-),前面讲的是(B^-),这里的(B')就是(B^+),两者的区别在于(B_1=pmfrac{1}{2})

    另外,如果把自然数下标从(0)开始(即(f(n,k)=sum_{i=0}^{n} i^k)),类似地推,可以得到(f(n,k)=frac{1}{k+1}sum_{i=0}^kinom{k+1}{i}(n+1)^{k+1-i}B_i)


    总结:

    和另外几个常用的推自然数幂和的方法比较:

    1. 第二类斯特林数:
      1. 优点:容易通过组合意义考虑,即使忘记式子也容易重新推出;可以不用除法。
      2. 缺点:朴素方法需要(O(k^2))预处理斯特林数,如果(k)相同做到(O(klg k))要写复杂的多项式做法求出;式子中含有下降幂,并不直接是多项式形式,不方便扩展。
    2. 拉格朗日插值:
      1. 优点:预处理速度快。
      2. 缺点:一般是直接将(n)带入拉格朗日插值的式子中,不是直接生成多项式,若要生成多项式要多点插值(?),扩展性弱。
    3. 伯努利数:
      1. 优点:可以直接生成关于(n)的多项式形式;某种程度上统一了对于不同的(k),自然数幂和关于(n)的函数,扩展性强。
      2. 缺点:相对而言不是那么容易考场推出。
  • 相关阅读:
    使用Xcode和Instruments调试解决iOS内存泄露(转载) sansan
    GCD介绍(二): 多核心的性能(转载) sansan
    iphone 常用的<app>info.plist设置(转载) sansan
    GCD介绍(一): 基本概念和Dispatch Queue (转载) sansan
    iOS 证书与签名 解惑详解[转] sansan
    Xcode快捷键 sansan
    GCD介绍(三): Dispatch Sources(转载) sansan
    Apple开发者授权 sansan
    MFC中Spin control的使用
    c++ windows mobile中设置菜单活动与否
  • 原文地址:https://www.cnblogs.com/jz-597/p/14764881.html
Copyright © 2011-2022 走看看