zoukankan      html  css  js  c++  java
  • 组合数学及其应用——容斥原理

      容斥原理在集合论、概率论、组合数学中都常常出现,它是下面一个结论的推广。

     

      这是因为,我们分别减|A|、|B|的时候,把|AB|减掉了两次,因此这里应该再加一次。

      它的推广形式就是容斥定理。

      

       在给出证明之前,我们很有必要充分的理解一下这个公式的内涵。我们基于S集合上的一系列离散元素上讨论不满足m个性质的对象(元素)个数。我们假想某一种性质的具体表现为:一根丝带,圈住了满足这一条性质的所有元素(本质上就是画Venn图),现在我们想要求的就是没有被特定的m条丝带圈出的元素个数。

        这个定理再利用德摩根律能够做出等价变化,它在计数、反演公式等方面发挥着重要作用。

      

        下面开始结合一些具体的例子来拓展和深化对容斥定理的理解。

      

       错位排列:

      首先直观的解释什么是错位排列,然后我们再去探讨它如何与容斥原理结合起来.

      所谓错位排列,举个最简单的例子,在一个宴会上,10位绅士都有着自己的帽子,将这些帽子混合起来,10位绅士各自拿了一个帽子,考察每一位绅士发现,他们手中的帽子均不是自己原本的帽子,那么这就是一种错位排列,我们关心的是,有多少种这样的错位排列?

     

      

        关于错位排列,我们继续讨论一些内容。通过上面利用容斥定理这个角度看错排,我们得到了一个概率的极限结果,现在我们讨论一个易于计算错排公式的方法。

     

      

      一个具有限制位置的计数问题:

      假设一天8个男生按照标号1,2…7,8的序号站队去晨跑,第二天老师想要换一下站队顺序,要求是每个男孩前面的男孩都不是他昨天前面的男生,那么请问有多少种符合的排列方式?

      简单的讲,就是说8的全排列中,不含12,23,…,78的排列个数.

     

     

     

       

     

  • 相关阅读:
    JavaScript判断字符串的字符长度(中文占两个字符)
    MessageQueue 一 简单的创建和读取
    HttpWebResponse返回信息
    IDEA 快捷操作 Windows
    不带头结点的单链表的创建、插入、删除。
    二叉树的深度
    【Python爬虫实战】pywin32 安装后出现 import win32api ImportError DLL load failed
    【Python爬虫实战】Scrapy框架的安装 搬运工亲测有效
    【Python爬虫实战】多线程爬虫---糗事百科段子爬取
    【Python爬虫实战】微信爬虫
  • 原文地址:https://www.cnblogs.com/rhythmic/p/5877925.html
Copyright © 2011-2022 走看看