组合数学——容斥原理和错位排列

真的,学了组合数学你会克服公式恐惧症0.0深有体会……

容斥原理

A1,A2,,An 为有限集合,用 |Ai| 表示集合 Ai 中的元素个数那么有这样的结论:

|A1A2An|=i=1n|Ai|1i<jn|AiAj|+1i<j<kn|AiAjAk|+(1)n1|A1A2An|.

(总的概括就是奇数个集合的并集累加和 减去 偶数个集合的并集累加和)

证明

aA1A2An ,则 a 至少属于A1,A2,,An中一个集合。
不妨设 a 属于A1,A2,,Ak(1kn)而不属于其它集合。
于是 a 在1式左端计算了一次,而a在右端第一个和中算了 C1k 次,在第二个和中计算了 C2k ,…,可见, a 在右端算式中它被计算的总次数是:

C1kC2k+C3k+(1)k1Ckk=1

顺带提一句,这种证明方式是“贡献法”

容斥原理加强版

这个加强版是博主和数学竞赛的小伙伴(ckh&yzc)一起讨论组合数学的时候搞出来的,欢迎大家来找出不严谨的地方!
加强版:原容斥原理针对的是集合中元素的个数,而我们拓宽到整个集合,加号改为∪号;而我们定义 AB 得到的集合就是把A中所有B的元素都去掉后的结果。
例如,若 A={1,2,3,4,5}
B={1,2,4}
那么 AB={3,5}

证明

以下的证明来自ckh(数学竞赛大佬%%%%%%%)
看不懂的同学在纸上画一画,就能看懂了。
S=ni=1Ai
Bi=CSAi (补集的意思)
S=ni=1Bi
再令 Bi=S+Ci
所以 |B1Bi|=|S|
C1C2Cn=ϕ
Ai=SSCi
所以 ni=1Ai=SS(ni=1Ci)=SS
代入前面的设,得证。

德.摩根律

设P和Q都是S的子集。
则有:
CS(PQ)=(CSP)(CSQ)
CS(PQ)=(CSP)(CSQ)

逐步淘汰原理(筛法公式)

S 是有限集合,Ai都包含于 S(i1,2,,n) Ai S 中的补集为CSAi(i=1,2,,n)

|CSA1CSA2CSAn|=|S|i=1n|Ai|+1i<jn|AiAj|1<i<j<kn|AiAjAk|++(1)n|i=1nAi|

证明

因为 |ni=1Ai|=|S||CS(ni=1)Ai| .
根据德.摩根律,我们有

CS(i=1nAi)=i=1nCSAi

再根据容斥原理就能得到逐步淘汰公式。

置换及其不动点

给定集合 X={1,2,3,,n} φ 是从X到X上的一一映射,通常记为:

φ={1         2         3         4         5φ(1)   φ(2)   φ(3)   φ(4)   φ(5)

则称 φ X 上的置换,其中φ(i)是元素 i 在映射φ下的象。因为是一一映射,所以 φ(1),φ(2),,φ(n) 实际上是 1,2,,n 的一个排列。满足 φ(i)=i 的数 i 称为φ的一个不动点。

错位排列

在集合 X={1,2,,n} 上没有任何不动点的置换 φ 的个数是 Dn=n!(111!+12!13!++(1)nn!)

例题3

φ 是集合 X={1,2,,n} 上的置换,将 X 上没有不动点的置换个数记为fn,恰有一个不动点的置换个数记为 gn ,求证: |fngn|=1. (14届加拿大数学奥林匹克试题)

证明:

gn(i=1,2,,n) 表示 X 上恰有唯一不动点i的置换个数。
于是

gn=gn1+gn2++gnn,

由上述推论,有
fn=Dn,gn=Dn1(i=1,2,3,,n),

gn=nDn1,

所以
|fngn|=|DnnDn1|=|n!(111!+12!+(1)nn!)|n×(n1)!(111!+12!+(1)n1(n1)!)=|n!×(1)nn!|=1

得证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值