[组合数学]容斥原理的初步总结
来源:互联网 发布:windows闭源 编辑:程序博客网 时间:2024/05/21 14:04
容斥原理
应用于计数集合划分有重叠,无法简单应用加法原理的情况下。主要方法是颠倒计数过程,先计数1组合~~n-1组合数,然后
根据容斥性质从总集合|S|中减去或加上相应计数。
=一般公式===========
---------
计算不具有某几个属性 物体个数:
公式:
=|S|- ∑R-1 + ∑R-2 - ∑R-3 ... +(-1)^mR-m
---------
一种情况的化简
情况:各R-i组合个数相同(k个i组合计数相同)
=a0 - C(m,1)a1 + C(m,2)a2 - C(m,3)a3 + ... + (-1)^k C(m,k)ak + ... + (-1)^m am
---------
计算至少具有某几个属性之一 的物体个数
公式:
=∑R-1 - ∑R-2 + ∑R-3 ... +(-1)^(m+1) R-m
=有限多重组合计数问题============
情况:n个不同元素,k种,非无限,没种限制为r1...rk。在n种元素中取r组合。
解决方法:
按无限多重组合运算共C(n+k-1)种
按1组合到k组合计算每种组合的补集的无限多重组合计数(1组合|A1|,|A2|,2组合|A1 & A2|...)
其中|Ai|=C(r-ri-1+k-1,r-ri+i) (备注:r-ri-1为先取ai达到ri+1个后,进行无限多重组合计数的总位数)
公式:
按容斥原理=[C(n+k-1) - 1组合 + 2组合 + 。。。 + (-1)^k k组合计数]
=错位排列问题===========
情况:每个元素有一个特定位。要求求出元素不在其原始位置的所有排列
解决方法:
计算元素在特定位置的1组合、2组合...n组合情况下的所有排列数。
按容斥原理从|S|中剪除或加入这些排列数。
公式:
Dn = n!-C(n,1)(n-1)!+C(n,2)(n-2)!+...+(-1)^n C(n,n)(n-n)!
经化简得到下面1式。
Dn = n!(1-1/1!+1/2!-3/3!+...+(-1)^n 1/n!)
Dn = nDn-1 + (-1)^n
=带禁止位排列==========
情况:典型的是非攻击车在棋盘上有某些位置禁止放置的情况
解决方法:
首先计算在禁止位放置非攻击车的方案(r1、r2、...、rn个)组合情况下的所有排列数
按容斥原理从|S|中剪除或加入这些排列数。
公式:
Dn=n!-r1(n-1)!+r2(n-2)!+...+(-1)^k rk(n-k)!+...+(-1)^n rn
=相对禁止位排列==========
情况:集合{1,2,...,n}不出现12,23,34这种排列
解决方法:
将12,23,34这种排列作为一个元素放在排列中,分别计算n-1个元素的1组合、2组合...n-1组合情况下的所有排列数
按容斥原理从|S|中剪除或加入这些排列数。
公式:
Qn=n! - C(n-1,1)(n-1)!+C(n-1,2)(n-2)!+...+(-1)^n-1 C(n-1,n-1)1!
与禁止位排列联系后,公式可以转化为
Qn = Dn + Dn-1 = (n+1)Dn-1 + (-1)^n
- [组合数学]容斥原理的初步总结
- 容斥原理(组合数学)总结
- 组合数学-容斥原理专辑
- 组合数学 容斥原理 专题
- 容斥原理+质因数分解+组合数学
- 组合数学:容斥原理及其应用
- 组合数学之容斥原理
- 【组合数学】八(容斥原理)
- 组合数学第三发 容斥原理 hdu 1796
- 【组合数学_容斥原理专辑】【10.4最新更新】
- UVALive 6469 Deranged Exams 组合数学+容斥原理
- UVa 11806 - Cheerleaders (组合数学 容斥原理)
- hdu 1695 GCD(组合数学:容斥原理)
- uva 10325 The Lottery(组合数学-容斥原理)
- HDU 5073 Coprime(容斥原理+组合数学)
- POJ 1091 跳蚤 [容斥原理]【组合数学】
- UVa 11481 Arrange the Numbers (组合数学+容斥原理)
- hdu 2204 Eddy's爱好 [容斥原理]【组合数学】
- ADSL接入模式浅析
- DLL中调用约定和名称修饰
- 改变或关闭Oracle XDB的ftp和http端口
- 要上10台服务器 500M独享带宽 大家有没有便宜点的资源
- 今日计划
- [组合数学]容斥原理的初步总结
- 在ARX中通过COM在ACAD中添加菜单和工具条
- 关于C#调用Office Web Components绘图的问题
- 向斯蒂芬·金学习!
- Eclipse快速上手Hibernate--4. 继承映射(3)
- 是用ADO连接数据库出现8007007f错误的解决办法
- 精彩的近乎完美的分页存储过程
- Linux 开发指南-3
- c#.net常用函数列表