zoukankan      html  css  js  c++  java
  • 组合数学一:容斥原理

    这篇随笔不是原创内容。
    抄录 Stasys Jukna 所著 Extremal Combinatorics $S 1.6~ ext{The inclusion-exclusion principle}$


    The principle of inclusion and exclusion (sieve of Eratosthenes) is a powerful tool in the theory of enumeration as well as in number theory. This principle relates the cardinality of the union of certain sets to the cardinalities of intersections of some of them, these latter cardinalities often being easier to handle.

    For any two sets $A$ and $B$, we have
    egin{equation*}
    |A cup B| = |A| + |B| - |A cap B|.
    end{equation*}

    In general, given $n$ subsets $A_1, dots, A_n$ of set $X$, we want to calculate the number $|A_1 cup dots cup A_n|$ of points in their union. As the first approximation of this number, we can take the sum
    egin{equation}
    |A_1| + dots + |A_n|. label{naive-sum}
    end{equation}

    However, in general, this number is too large since if, say $A_i cap A_j e emptyset$ then each point of $A_i cap A_j$ is counted two times in eqref{naive-sum}: once in $|A_i|$ and once in $|A_j|$. We can try to correct the situation by subtracting from eqref{naive-sum} the sum
    egin{equation}
    sum_{1 le i < j le n} |A_i cap A_j|. label{two-sum}
    end{equation}

    but then we get a number which is too small since each of the points in $A_i cap A_j cap A_k e emptyset$ is counted three times in eqref{two-sum}: once in $ |A_i cap A_j| $, once in $|A_j cap A_k| $, and once in $|A_i cap A_k|$. We can therefore try to correct the situation by adding the sum
    egin{equation*}
    sum_{1 le i < j < k le n} | A_i cap A_j cap A_k|,
    end{equation*}

    but again we will get a too large number, etc. Nevertheless, it turns out that after $n$ steps well will get the correct result. This result is known as the inclusion-exclusion principle. The following notation will be handy: if $ I $ is a subset of the index set $ {1, dots, n} $, we set
    egin{equation*}
    A_I := igcap_{i in I} A_i,
    end{equation*}

    with the convention that $A_{emptyset} = X$.

    Proposition 1 (Inclusion-Exclusion Principle). Let $A_1, dots, A_n$ be subsets of $X$. Then the number of elements of $X$ which lie in none of the subsets $A_i$ is
    egin{equation}
    sum_{I subseteq {1, dots, n }} (-1) ^ {|I|} |A_I|. label{E:1}
    end{equation}

    Proof. The sum is a linear combination of cardinalities of sets $A_I$ with coefficients $+1$ and $-1$. We can re-write this sum as
    egin{equation*}
    sum_I (-1)^{|I|} | A_I| = sum_I sum_{x in A_I} (-1)^{|I|} = sum_{x} sum_{I colon x in A_I} (-1)^{|I|}.
    end{equation*}

    We calculate, for each point of $X$, its contribution to the sum, that is, the sum of the coefficients of the sets $A_I$ which contain it.

    First suppose that $ x in X$ lies in none of the sets $ A_i $. Then the only term in the sum to which $x$ contributes is that which $ I = emptyset$; and this contribution is $1$.

    Otherwise, the set $ J := { i colon x in A_i } $ is non-empty; and $ x in A_I $ precisely when $ I subseteq J $. Thus, the contribution of $ x $ is
    egin{equation*}
    sum_{ I subseteq J } (-1) ^ { | I | } = sum_{ 0 le i le |J| } inom{|J|}{i} (-1)^i = (1 - 1)^{ |J| } = 0
    end{equation*}

    by the binomial theorem.

    Thus, points lying in no set $A_i$ contribute $ 1 $ to the sum, while points in some $ A_i $ contribute $ 0 $; so the overall sum is the number of points lying in none of the sets, as claimed.

    For some applications, the following form of the inclusion-exclusion principle is more convenient.

    Proposition 2. Let $A_1, dots, A_n$ be a sequence of (not necessarily distinct) sets. Then
    egin{equation}
    |A_1 cup dots cup A_n| = sum_{emptyset e I subseteq {1 dots n}} (-1)^{ |I| + 1 } |A_I|. label{E:2}
    end{equation}

    Proof. The left-hand of eqref{E:2} is $|A_emptyset|$ minus the number of elements of $X = A_emptyset$ which lie in none of the subsets $A_i$. By Proposition 1 this number is
    egin{equation*}
    |A_emptyset| - sum_{I subseteq { 1, dots, n}} (-1)^{|I|} |A_I| = sum_{emptyset e I subseteq {1, dots, n}} (-1)^{ |I| + 1 } |A_I|,
    end{equation*}
    as desired.

  • 相关阅读:
    WPF中鼠标左键单击Button弹出ContextMenu,让其右键ContextMenu失效
    如何实现在浏览器中打开IM聊天窗口? 转载
    WPF程序禁止win7窗口自动最大化
    从URL启动程序:也谈谈旺旺的页面启动转载
    混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下...转载
    如何让WrapPanel自动换行转载
    sqlserver2008权限怎么设置?
    如何修改远程桌面连接3389端口
    数据库轮询缓存依赖。
    SQL Server 查询性能优化——索引与SARG(一)(转载)
  • 原文地址:https://www.cnblogs.com/Patt/p/7656226.html
Copyright © 2011-2022 走看看