• 莫比乌斯反演(一)从容斥到反演


    公式

    《组合数学》里是这样写的:[1]

    [X_n={ 1,2, dots ,n } ]

    [F: mathcal{P}(X_n) ightarrow Re​ ]

    [G: mathcal{P}(X_n) ightarrow Re​ ]

    白话:(F),(G) 都是一个函数,表示每个(X_n)的子集对应一个实数。$mathcal{P}(X_n) $表示全体子集的集合。(数学表达抽象是为了针对普遍情况,可以带入具体的概念去理解)

    其中

    [G(K)=sumlimits_{L subseteq K }^{} F(L) (K subseteq X_n)​ ]

    特别地(通过莫比乌斯反演),我们有

    [F(K)=sumlimits_{L subseteq K }^{} (-1)^{|K|-|L|}G(L) (K subseteq X_n)​ ]

    举例

    《组合数学》书本例子[1:1]:(原文真的很讲究)设(A_1,A_2,dots,A_n​) 有限集(S​) 的子集,(Ksubseteq {1,2,dots,n}​)

    定义(F(K)​)表示计数(S​)里有多少个元素,不属于所有(K​)选中的子集,而且都属于没选中的子集。

    于是(G(K)=sumlimits_{L subseteq K }^{} F(L) ​) 就表示计数所有不在(K​)选中的子集中的的共有元素的个数。要想通这一点有点不直接,可以画个图:(小黑圈表示有这个元素,小蓝圈表示没有。)

    草图

    也可以这样想,所有不在(K)选中的子集中的的共有元素,是每个(F(L))都会计一次的。知道了这一结论,可以发现(G(K)) 还是蛮好算的,有

    [G(K) = left| igcaplimits_{i otin K }^{} A_i ight| ​ ]

    根据反演公式,有

    [F(K)=sumlimits_{L subseteq K }^{} (-1)^{|K|-|L|}G(L) ]

    可以把集合表达式带进去,得到

    [left| overline{A_1} cap overline{A_2} cap dots cap overline{A_n} ight| =sumlimits_{L subseteq K }^{} (-1)^{|K|-|L|} left| igcaplimits_{i otin K }^{} A_i ight| ]

    在等价替换一下,当(K= {1,2,dots,n})时,

    [left| overline{A_1} cap overline{A_2} cap dots cap overline{A_n} ight| =sumlimits_{J subseteq X_n }^{} (-1)^{|J|} left| igcaplimits_{i in J }^{} A_i ight| ​ ]

    这就等价容斥原理(绝了)。

    理解可以这样: $left| overline{A_1 cup A_2 cup dots cup A_n} ight| $表示这些子集的并集,取反的元素还有多少个,这个问题容易想到是用容斥解,不过本文是为了引入莫比乌斯反演,表现一下容斥和莫比乌斯反演的关系。

    我不想把篇幅弄得太长,太长不太便于阅读,下一篇将正式讲莫比乌斯反演的一些例子。


    1. 《组合数学》P115 ↩︎ ↩︎

  • 相关阅读:
    吴裕雄--天生自然python学习笔记:python 用 Tesseract 识别验证码
    吴裕雄--天生自然python学习笔记:python安装配置tesseract-ocr-setup-3.05.00dev.exe
    吴裕雄--天生自然python学习笔记:python 用 Open CV通过人脸识别进行登录
    吴裕雄--天生自然python学习笔记:python 用 Open CV抓取摄像头视频图像
    HDU4278 Faulty Odometerd
    最大流 总结
    HDU1411 欧拉四面体
    HDU3336 Count the string
    HDU1711
    HDU2203 亲和串
  • 原文地址:https://www.cnblogs.com/tieway59/p/10636356.html
Copyright © 2020-2023  润新知