zoukankan      html  css  js  c++  java
  • 【笔记】 用生成函数推二项式反演

    (f(i)=sum_{jge i}inom{j}{i}g(j))

    已知 (f(i) (0 le i le n))(O(n)) 可求某一项 (g(i))

    [g(i)=sum_{jge i}inom{j}{i}(-1)^{j-i}f(j) ]

    这个大家都懂,但怎么推呢?从 (f(i)=sum_{jge i}inom{j}{i}g(j)) 开始吧,移项:

    (g(i)=f(i)-sum_{j>i}inom{j}{i}g(j))

    考虑 (f(j)) 对于 (g(i)) 的贡献系数。

    大概是一条形如 (-inom{j}{p_1} imes -inom{p_1}{p_2} imes cdots imes -inom{p_{m}}{i}) 的贡献路径,其中 (j> p_1>p_2>cdots>p_m> i)。发现像是在对 (j-i) 进行拆分什么的。不妨把组合数拆开:

    [-inom{j}{p_1} imes -inom{p_1}{p_2} imes cdots imes -inom{p_{m}}{i} \ = -inom{j}{j-p_1} imes -inom{p_1}{p_1-p_2} imes cdots imes -inom{p_{m}}{p_m-i} \ = dfrac{-j^{underline{j-p_1}}}{(j-p_1)!} imes dfrac{-p_1^{underline{p_1-p_2}}}{(p_1-p_2)!} imes cdots imes dfrac{-p_m^{underline{p_m-i}}}{(p_m-i)!} \ = dfrac{j^{underline {j-i}}}{-(j-p_1)! imes -(p_1-p_2)! imes cdots imes -(p_m-i)!} ]

    不难发现即求所有 (j-i) 的有序划分方案 (a_1,a_2,cdots,a_m)

    [j^{underline{j-i}}sum_{sum a=j-i} prod_{k=1}^{m} dfrac{1}{-a_k!} ]

    直接做显然不好做,考虑构造生成函数 (h(x)=sum_{i=1}^{infty}dfrac{x^i}{-i!}=1-e^x)

    则答案生成函数为 (sum_{i=0}^{infty}h^{i}(x))。注意到 (h^0(x)=0) 不便于求解,且我们不需要用到常数项,手动加上一个 (1)

    根据 (sum_{i=0}^{infty} x^i = dfrac{1}{1-x}),带入 (x=h(x))(sum_{i=0}^{infty}h^i(x)=dfrac{1}{1-h(x)}=dfrac{1}{e^x}=e^{-x})

    所以有 ([x^n]e^{-x}=dfrac{(-1)^n}{n!})

    (f(j))(g(i)) 的贡献系数即为 (dfrac{(-1)^{j-i} j^{underline{j-i}}}{(j-i)!}=(-1)^{j-i}inom{j}{i})

  • 相关阅读:
    利用connect建立前端开发服务器
    Bootstrap Popover 隐藏的Javasript方法
    Kafka 2.1.0压缩算法性能测试
    关于Kafka java consumer管理TCP连接的讨论
    Java API获取consumer group最新提交位移的时间
    关于Kafka producer管理TCP连接的讨论
    【译】Apache Kafka支持单集群20万分区
    关于Kafka broker IO的讨论
    Kafka 2.0 ConsumerGroupCommand新功能
    关于Kafka high watermark的讨论2
  • 原文地址:https://www.cnblogs.com/imakf/p/14287447.html
Copyright © 2011-2022 走看看