• 反演


    看了vfk的反演魔术,跪着膜。在这里稍微总fan结yi一下,总结得更精干一点。(就是总结各种反演及证明,然后总结到自己也看不懂。

    二项式反演 :

    $f(x) = sumlimits_{i = 0}^{n} inom{n}{i}  g(i)$  ===>>  $g(i)=sum_{i = 0}^{n} (-1)^{n - i} f(i)$

    对于组合数我们有 $sumlimits_{i = 0}^{n} (-1)^{i} inom{n}{i} = left [ n==0 ight ]$

    然后有一句废话 $g(n) = sumlimits_{i = 0}^{n} left [ n - i == 0 ight ] inom{n}{i} g(i)$

    把上式代入有 $g(n) = sumlimits_{i = 0}^{n} sumlimits_{j = 0}^{n - i} (-1)^{j} inom{n - i}{j} inom{n}{i} g(i)$

    我们发现 $inom{n - i}{j} inom{n}{i} = inom{n-j}{i} inom{n}{j}$ 的

    所以有 $g(n) = sumlimits_{i = 0}^{n} sumlimits_{j = 0}^{n - i} (-1)^{j} inom{n}{j} inom{n-j}{i} g(i)$

    然后可以交换 $sum$ 符号 得到 $g(n) = sumlimits_{j = 0}^{n} (-1)^{j} inom{n}{j} sumlimits_{i = 0}^{n - j} inom{n - j}{i} g(i)$

    注意最右边的那个小朋友!其实就是 $f(n - j) $!

    然后把下标整理一下,我们就得到了二项式反演的公式,也就是我们一开始给出的那个公式。

    莫比乌斯反演 :

    $f(x) =sumlimits_{d|x} g(d)  ===>>  g(x) =sumlimits_{d|x} mu (d) f(frac{x}{d})$

    对于$mu$ 函数我们有$sumlimits_{d|n} mu (d) = left [ n==1 ight ]$

    那么效仿之前的方式,$g(n) = sumlimits_{d|n} left [ frac{n}{d} == 1 ight ] g(d)$

    我们替换方括号内部分 $g(n) = sumlimits_{d|n} sumlimits_{k|frac{n}{d}} mu (k) g(d)$

    $d|n$ 与$ k|frac{n}{d}$ 实际上是枚举所有$c|n$且c=dk,所以等价于先枚举$k|n$,再枚举$k|frac{n}{k}$。

    交换求和顺序就有$g(n) = sumlimits_{k|n} mu (k) sumlimits_{d|frac{n}{k}} g(d)$ 

    右边就是$f(frac{n}{k})$

    其实反演本质都是容斥原理

  • 相关阅读:
    Windows环境下消息中间件RabbitMq的搭建与应用
    6.异常释放锁的情况
    5.synchronized锁重入
    4.脏读
    3.多线程(同步、异步)
    2.多线程(同步类级别锁)
    1.多线程同步
    24.Semaphore
    23.读写锁ReadWriteLock
    22.线程通信Condition
  • 原文地址:https://www.cnblogs.com/ihopenot/p/6628795.html
Copyright © 2020-2023  润新知