zoukankan      html  css  js  c++  java
  • 反演魔术---二项式反演

    反演是一种将难化易常用的手段

    一般来说, 它有如下形式:

    [f(n) = sum_{i = 0}^na_{ni}g(i)\ g(n) = sum_{i=0}^nb_{ni}f(i) ]

    本质上来说, 反演是一个接线性方程组的过程

    常见的反演有:

    • 二项式反演
    • 斯特林反演
    • 莫比乌斯反演
    • 单位根反演

    二项式反演

    形式一:

    [ F(n)=sumlimits_{i=0}^n(-1)^idbinom{n}{i}G(i)\ G(n)=sumlimits_{i=0}^n(-1)^idbinom{n}{i}F(i) ]

    形式二:

    [ F(n)=sumlimits_{i=0}^ndbinom{n}{i}G(i)\ G(n)=sumlimits_{i=0}^n(-1)^{(n-i)}dbinom{n}{i}F(i) ]

    形式三:

    [ F(n)=sum_{i=n}^N(-1)^idbinom{i}{n}G(i)\ G(n)=sum_{i=n}^N(-1)^idbinom{i}{n}F(i) ]

    形式四:

    [ F(n)=sum_{i=n}^Ndbinom{i}{n}G(i)\ G(n)=sum_{i=n}^N(-1)^{i-n}dbinom{i}{n}F(i) ]

    比较常用的形式是二和四

    下面证明形式二为例

    引理:

    [dbinom{n}{j}dbinom{j}{i}\ =large{frac{n!}{j!(n-j)!}frac{j!}{i!(j-i)!}}\ =large{frac{n!}{i!(n-i)!}frac{(n-i)!}{(n-j)![(n-i)-(n-j)]!}}\ =large{dbinom{n}{i}dbinom{n-i}{n-j}}\ ]

    证明

    [ F(n)=sum_{i=0}^ndbinom{n}{i}G(i)\ sum_{i=0}^n(-1)^{(n-i)}dbinom{n}{i}F(i)\ =sum_{i=0}^n(-1)^{(n-i)}dbinom{n}{i}sum_{j=0}^idbinom{i}{j}G(j)\ =sum_{i=0}^nG(i)sum_{j=i}^n(-1)^{(n-j)}dbinom{n}{j}dbinom{j}{i}\ =sum_{i=0}^nG(i)sum_{j=i}^n(-1)^{(n-j)}dbinom{n}{i}dbinom{n-i}{i-j}\ =sum_{i=0}^ndbinom{n}{i}G(i)sum_{j=i}^n(-1)^{(n-j)}dbinom{n-i}{i-j}\ =sum_{i=0}^ndbinom{n}{i}G(i)sum_{j=0}^{n-i}(-1)^{n-i-j}dbinom{n-i}{j}\ =sum_{i=0}^ndbinom{n}{i}G(i)(1-1)^{(n-i)}\ =G(n) ]

    证毕!!!

    应用: 错位排列

    (f(i))为恰好有i位错位的方案数, $g(i) = i! $

    [large{g(n) = n! = sum_{i=0}^n}f(i) dbinom ni ]

    枚举有几位错位,方案之和即为全排列

    二项式反演得:

    [f(n) = sum_{i=0}^n(-1)^{n-i}dbinom ni g(i)\ =sum_{i=0}^n(-1)^{n-i} frac {n!}{(n-i)!}\ =n!sum_{i=0}^nfrac{(-1)^i}{i!} ]

    是不是很奇妙

    例题: 已经没有什么好害怕的了

    当容斥系数为二项式反演系数时, 可以利用二项式反演加速

    斯特林反演下次一定更新!

  • 相关阅读:
    动词 + to do、动词 + doing
    图像直线检测——霍夫线变换
    x=min(x, y)
    x=min(x, y)
    算法 Tricks(三)—— 数组(序列)任意区间最小(大)值
    算法 Tricks(三)—— 数组(序列)任意区间最小(大)值
    分治法求解切割篱笆
    分治法求解切割篱笆
    GMM的EM算法实现
    秒杀多线程第二篇 多线程第一次亲热接触 CreateThread与_beginthreadex本质差别
  • 原文地址:https://www.cnblogs.com/Hs-black/p/12225804.html
Copyright © 2011-2022 走看看