zoukankan      html  css  js  c++  java
  • 「学习笔记」伯努利数

    定义

    [B_n = [n = 0] - frac 1{n + 1} sum_{i=0}^{n-1} inom {n + 1} i B_i ]

    同时有

    [hat{B}(x) = sum_{i geq 0} B_i frac {x^i} {i!} = frac x{e^x - 1} ]

    所以可以使用多项式求逆求出伯努利数。

    性质

    设自然数幂和函数 (S_k(n) = sum_{i=0}^{n-1} i^k),那么有:

    [S_k(n) = frac 1{k + 1} sum_{i=0}^k inom{k + 1}i B_i n^{k - i + 1} ]

    (hat{S}_n(x) = sum_{i geq 0} frac {x^i} {i!} S_i(n)),那么:

    [egin{aligned} hat{S}_n(x) &= sum_{i geq 0} frac {x^i} {i!} sum_{j=0}^{n-1} j^i\ &= sum_{j=0}^{n-1} sum_{i geq 0} frac {(jx)^i} {i!}\ &= sum_{j=0}^{n-1} e^{jx}\ &= frac {e^{nx} - 1}{e^x - 1} end{aligned} ]

    所以

    [egin{aligned} S_k(n) &= k! [x^k] frac{e^{nx} - 1}{e^x - 1}\ &= k! sum_{i=0}^k frac{B_i}{i!} [x^{k-i+1}] (e^{nx} - 1)\ &= frac 1{k + 1} sum_{i=0}^k inom{k+1}i B_i n^{k - i + 1} end{aligned} ]

    例子

    洛谷P3711 仓鼠的数学题

    求多项式 (f(x) = sum_{k=0}^n S_k(x + 1) a_k)

    首先考虑求出 (g(x) = f(x - 1)) 然后再基变换回去。

    那么:

    [egin{aligned} g(x) &= sum_{k=0}^n frac {a_k} {k + 1} sum_{i=1}^{k + 1} inom{k + 1}i x^i B_{k - i + 1}\ &= sum_{k=0}^n a_k k! sum_{i = 1}^{k + 1} frac {x^i} {i!} frac {B_{k - i + 1}}{(k - i + 1)!}\ &= sum_{i=0}^n frac {x^{i + 1}}{(i + 1)!} sum_{k=i}^n a_k k! frac{B_{k - i}}{(k - i)!} end{aligned} ]

    显然的减法卷积形式,NTT 即可。

  • 相关阅读:
    编程语言的进化
    面向对象
    面向对象oop
    .NET——内存分配
    使用IIS承载WCF服务
    .NET代码生成器ASP.NET Factory 开放所有源代码下载
    SyntaxHighlighter
    写代码的三重境界
    Wijmo jQuery 插件集
    给vs2012换肤
  • 原文地址:https://www.cnblogs.com/cj-xxz/p/14437623.html
Copyright © 2011-2022 走看看