组合数学_第3章_容斥原理与鸽巢原理

第3章 容斥原理与鸽巢原理

3.1 De Morgan定理

德摩根(De Morgan)定理:若AB是集合U的子集,则

  1. AB¯=A¯B¯

  2. AB¯=A¯B¯

德摩根定理的推广:

  1. A1A2An¯=A1¯A2¯An¯
  2. A1A2An¯=A1¯A2¯An¯

3.2 容斥定理

|ABC|=|A|+|B|+|C||AB||AC||BC|+|ABC|

image-20230222213527696

容斥原理的推广:

A1,A2,...Ann个有限的集合,则

|A1A2An|=i=1n|Ai|i=1nj>i|AiAj|+i=1nj>ik>j|AiAjAk|+(1)n1|A1A2An|

|A1¯A2¯An¯|=N|A1A2An|

3.3 容斥原理举例

例题:求从1到600的整数中能被2、3、5除尽的数的个数和不能被2、3、5除尽的个数。

:令A、B、C分别为从1到600的整数中被2、3、5除尽的数的集合。

|A|=6002=300,|B|=6003=200,|C|=6005=120

|AB|=6002×3=100,|AC|=6002×5=60,|BC|=6003×5=40

|ABC|=6002×3×5=20

被2、3,、5除尽的数的个数为

|ABC|=|A|+|B|+|C|(|AB||AC||BC|)+|ABC|=300+200+120(100+60+45)20=400

不能被2、3,、5除尽的数的个数为

|A¯B¯C¯|=N|ABC|=600400=200


例题:求由a、b、c、d四个字母构成的n位符号串中,a、b、c(每个)至少出现一次的符号串数目。

:令A、B、C分别为n位符号串中不出现a、b、c符号的集合。由于n位符号串中每一位都可取a、b、c、d四种符号中的一个,故不允许出现a的n位符号串的个数应是3n,即|A|=|B|=|C|=3n,|AB|=|AC|=|BC|=2n,|ABC|=1,a、b、c每位都至少出现一次表示为|A¯B¯C¯|

|A¯B¯C¯|=4n(|A|+|B|+|C|)+(|AB|+|AC|+|CB|)|ABC|=4n33n+32n1

3.4 容斥原理的应用

例题:对问题x1+x2+x3=15,0x15,0x26,0x37,求整数解的数目。

:如果没有0x15,0x26,0x37,记所求的整数解的集合为S|S|=C3+15115=C172=136

分别设S中满足x16的子集为A1,满足x27的子集为A2,满足x38的子集为A3,问题转化为求|A1¯A2¯A3¯|

对于A1,相当于x1+x2+x3=156,即x1+x2+x3=9,求其非负整数解得|A1|=C3+919=55

同理得|A2|=C3+818=45,|A3|=C3+717=36

|A1A2|=C3+(1567)11567=C42=6

|A1A3|=C3+(1568)11568=C32=3

|A1A2|=C3+(1578)11578=C22=1

|A1A2A3|=0

|A1¯A2¯A3¯|=136(55+45+36)+(6+3+1)0=10


例题:求从(0,0)点到(10,5)点得路径中不通过AB,CD,EF,GH的路径数,已知各点坐标为A(2,2),B(3,2),C(4,2),D(5,2),E(6,2),F(6,3),G(7,2),H(7,3)

Snipaste_2023-02-23_17-51-39

:从(0,0)点到(10,5)点的所有路径数为C10+55=3003(第一章的简单格路问题)

A1表示从(0,0)到(10,5)其中过AB的路径,

A2表示从(0,0)到(10,5)其中过CD的路径,

A3表示从(0,0)到(10,5)其中过EF的路径,

A4表示从(0,0)到(10,5)其中过GH的路径,

因此有

|A1|=(42)((103)+(52)52)=(42)(103)=6×120=720

同理

|A2|=(62)(83)=15×56=840

|A3|=(82)(62)=28×15=420

|A4|=(92)(52)=36×10=360

|A1A2|=(42)(82)=6×56=336

|A1A3|=(42)(62)=6×15=90

|A1A4|=(42)(52)=6×10=60

|A2A3|=(62)(62)=15×15=225

|A2A4|=(62)(52)=15×10=150

|A3A4|=0

|A1A2A3|=(42)(62)=6×15=90

|A1A2A4|=(42)(52)=6×10=60

|A2A3A4|=0

|A1A2A3A4|=0

所以

|A1¯A2¯A3¯A4¯|=3003(720+840+420+360)+(336+90+60+225+150)(90+60)=30032340+861150=1374

3.5 n对夫妻问题

例题n对夫妻围圆桌而坐,每个男人都不和他的妻子相邻,有多少种方案?

n对夫妻有2n个人,2n个人围圆桌而坐的方案数为(2n1)!

Ai表示第i对夫妻相邻而坐的集合,i=1,2,...,n,则问题转化为求

|A1¯A2¯An¯|=Ni=1n|Ai|+i=1nj>i|AiAj|+(1)n|A1A2An|

|Ai|相当于讲第i对夫妻作为一个对象围圆桌,同一对夫妻之间可以换位,故

|Ai|=2Q2n12n1=2(2n2)!

|AiAj|=22Q2n22n2=22(2n3)!

|AiAjAk|=23Q2n32n3=22(2n4)!

|A1A2An|=2nQ2nn2nn=2n(n1)!

故夫妻不相邻方案数为

M=(2n1)!2(n1)(2n2)!+22(n2)(2n3)!+(1)n2n(nn)(n1)!=h=0n(1)h2h(nh)(2nh1)!


例题n对夫妻排成一列,每个男人都不和他的妻子相邻,有多少种可能的方案?

M=(2n)!2(n1)(2n1)!+22(n2)(2n2)!+(1)n2n(nn)(n)!=h=0n(1)h2h(nh)(2nh)!

3.6 错排问题

定义:一个排列其中所有的元素都不在原来的位置上,则称这个排列为错排,也叫重排

证明n个元素的错排为n!(111!+12!±1n!)

Ai为数i在第i位上的全体排列,i=1,2,..,n。因为数字i不能动,因而有:

|Ai|=(n1)!,i=1,2,...,n

|AiAj|=(n2)!,i,j=1,2,..,n,ij

每个元素都不在原来位置的排列数为

|A1¯A2¯An¯|=n!C(n,1)(n1)!+C(n,2)(n2)!±C(n,n)1!=n!(111!+12!±1n!)


例题:1,2,…,9的全排列中,求偶数都在原来的位置上,其余都不在原来位置上的错排数目。

:实际上是1,3,5,7,9五个数的错排问题,总数为:

5!C(5,1)4!+C(5,2)3!C(5,3)2!+C(5,4)1!C(5,5)=120(1216+1241120)=44

3.7 棋盘多项式和有禁区的排列

对于X=1,2,...,n的一个排列恰好对应了n个棋子在n×n棋盘上的一种布棋方案。以棋盘的行表示X中的元素element,列表示排列中的位置position。如下图所示这种放棋方案就对应了排列2143。

image-20230223192010520

如果在排列种限制元素i不能排列在第j个位置,则相应的布棋方案种的第i行第j列的方格不允许放棋子。把所有这些不许放棋的方格称为禁区

对于{1,2,3,4}的一个排列P=e1e2e3e4,规定e13e21,4e32,4e42。这样的排列对应于有禁区的布子。如下图有阴影的格子表示禁区。

image-20230223192556135

棋盘多项式C为一棋盘,称k=0nrk(C)xkC的棋盘多项式,其中rk(C)表示k个棋子布到棋盘C的方案数。规定r0(C)=1

性质

  • Ci是棋盘C的某一指定格子所在的行与列都去掉后所得的棋盘,Ce是仅去掉该格子后的棋盘,则rk(C)=rk1(Ci)+rk(Ce)
  • 如果C由互相分离的C1C2组成,即C1的任一格子所在的行和列中都没有C2的格子,则有rk(C)=i=0kri(C1)rki(C2)

定理rii个棋子布入禁区的方案数,i=1,2,3,...n。有禁区的布子方案数(即禁区内不布子的方案数)为

r0n!r1(n1)!+r2(n2)!+(1)nrn=k=0n(1)krk(nk)!

定理证明见棋盘多项式 - 维基百科,自由的百科全书 (wikipedia.org)


例题:如下所示,在4×4的棋盘上,打叉的地方为禁区,求棋子无一落入禁区的排列数。

image-20230223213039732

:首先计算棋盘多项式,即r0(C)+r1(C)x+r2(C)x2+r3(C)x3+r4(C)x4,只需依次计算r0,r2,r2,r3,r4即可。

由规定知r0(C)=1

r1(C)即1个棋子布到棋盘C的方案数,棋盘C有6个禁区,这一个棋子可以布到这6个地方且不存在其他棋子与这一个棋子冲突,因此r1(C)=6

r2(C)即2个棋子布到棋盘C​​的方案数,从6个禁区中找到两个不在同一行不在同一列的。有(1,3)和(2,1),(1,3)和(2,4),(1,3)和(3,2),(1,3)和(3,4),(1,3)和(4,2),(2,1)和(3,2),(2,1)和(3,4),(2,1)和(4,2),(2,4)和(3,2),(2,4)和(4,2),(3,4)和(4,2),共11种。即r2(C)=11;

r3(C)即3个棋子布到棋盘C的方案数,得到r3(C)=7

笔记 2023年2月15日 16_22_57_00

r4(C)即4个棋子布到棋盘C的方案数,四个棋子要求都不同行不同列,只有一种方案,即r4(C)=1

综上得棋盘多项式为1+6x+11x2+7x3+x4,再结合定理得无一落入禁区得排列数为1×4!6×(41)!+11×(42)!7×(43)!+1×(44)!=2436+227+1=4

3.8 有限制的排列

  • 有禁区排列是对元素排列位置的限制,计算的是绝对禁用位置;

  • 有限制排列讲的是相对禁用位置,它限制的是对元素之间的相邻关系的限制 。也称为有限制条件(模式)的排列

  • 这里谈的有限制排列与前面章节提到的“受限多重排列”不同。

3.9 鸽巢原理

鸽巢原理是组合数学中最简单也是最基本的原理,也叫抽屉原理

  • 若有n个鸽子巢,n+1个鸽子,则至少有一个巢内有至少有两个鸽子。

  • m只各自,n个鸽巢,至少有一个鸽巢里有不少于m1n+1只鸽子。

  • m1,m2,...,mn都是正整数,并有m1+m2++mnn+1个鸽子住进n个鸽巢,则至少对某个i有第i个巢中至少有mi个鸽子,i=1,2,...,n

  • kn都是任意正整数,若至少有kn+1只鸽子分配在n个鸽巢,则至少有一个鸽巢里有至少k+1只鸽子。

  • 若取n(m1)+1个球放进n个盒子,则至少有一个盒子有m个球。

  • m1,m2,...,mn是正整数,且m1+m2+...+mnn>r1,则m1,m2,...,mn中至少有一个数不小于r

3.9.1 整除问题

例题:如果有n+1个正整数,而这些整数是小于或等于2n,是否一定会有一对数是互素的?为什么?

:证明,如果从{1,2,...,2n}中选择n+1个整数,那么存在两个整数,它们之间差为1。

设选择的n+1个整数为a1,a2,...,an+1,a1<a2<...<an,令b1=a1+1,b2=a2+1,...,bn=an+1,

1<b1<b2<...<bn2n

a1,a2,...,an+1,b1,b2,...,bn2n+1个数,但范围只有2n,所以其中至少有一对相等,且bj=aj+1bj=ak所有akaj只相差1。因此得证。

3.9.2 图形问题

例题:在边长为1的等边三角形内任意选择5个点,存在两个点,其间距最多为12。/在边长为1的等边三角形内任意选择10个点,存在两个点,其间距最多为13.

未命名文件

有4个小三角形,任选5个点,必有两个点在同一小三角形内。/有9个小三角形,任选10个点必有两个点在同一小三角形内。鸽巢原理。

3.9.3 连续累加问题

例题:设a1,a2,...am是正整数序列,则至少存在kl1k<lm,使得和ak+ak+1++alm的倍数。

证明:设Sh=i=1haiShrhmodm,0rhm1,h=1,2,...,m。若存在lSl0modm,则命题成立。否则,1rhm1,但h=1,2,...,m,由鸽巢原理知,存在rk=rh,即SkShmodm,不妨设h>k,则ShSk=ak+1+ak+2++ah0modm


例题:一个孩子每天至少做一题,总共做7周,每周总共不超过11题。必存在连续若干天在次期间这个孩子恰好做了20题。

证明:设a1,a2,...a49Sk=a1+a2++ak,即证必定存在0k<l49ak+1+ak+2++al=20,即SlSk=20

其中1S1,S2,...S4977,构造b1=S1+20,...,b49=S49+2097

1S1,S2,...,S49,b1,b2,...b4997,98个元素,但最高只能取到97,根据鸽巢原理其中必有两个元素相等。即存在bk=Sl,而bk=Sk+20,所以Sk+20=Sl,即SlSk=20

类似问题:生产产品、看电视、做运动…


例题:设a1,a2,...a100是由1和2组成的序列,已知从其任一数开始的顺序10个数的和不超过16,即ai+ai+1++ai+916,1i91,则至少存在hkk>h,使得ah+ah+1++ak=39

证明:令Sj=i=1jai,j=1,2,...,100,显然S1<S2<<S100,且S10010×16=160

做序列S1,S2,...,S100,S1+39,...S100+39共200项。其中最大项S100+39160+39=199

由鸽巢原理,必有两项相等,而且必是前段中的某项与后段中的某项相等,设Sk=Sh+39,k>h,SkSh=39,即ah+ah+1++ak=39

posted @   gengduc  阅读(962)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示