240 likes | 317 Views
离散 数学. 冯伟森. 计算机学院. Email : fws365@scu.edu.cn 2014年10月26日星期日. 主要内容. 1 、容斥原理 2 、鸽巢原理. 容斥原理. 例 8-4.1 计算从 1 到 1000 的整数中有多少个能被 3 、 5 、 7 中至少一个整除。 【 解 】 设前 1000 个正整数构成的集合为 S ,其中能被 3 整除的数构成集合 A ,能被 5 整除的数构成集合 B ,能被 7 整除的数构成集合 C 。那么能被 3 、 5 、 7 中至少一个整除的数构成的集合就是 A∪B∪C 。我们的问题就是要求这个集合的基数。.
E N D
离散 数学 冯伟森 计算机学院 Email:fws365@scu.edu.cn 2014年10月26日星期日
主要内容 • 1、容斥原理 • 2、鸽巢原理 计算机学院
容斥原理 例8-4.1 计算从1到1000的整数中有多少个能被3、5、7中至少一个整除。 【解】设前1000个正整数构成的集合为S,其中能被3整除的数构成集合A,能被5整除的数构成集合B,能被7整除的数构成集合C。那么能被3、5、7中至少一个整除的数构成的集合就是A∪B∪C。我们的问题就是要求这个集合的基数。 计算机学院
可以这样来求集合A∪B∪C的基数,即先把A,B,C各自的基数加起来,不过光这样做就多算了,因为同时有元素既在A中也在B中(例如15),或者既在A中也在C(例如21),或者既在B中也在C中(例如35),必须把这些重算的数目扣除,但是,这样扣又多扣了,因为可能同时在A,B,C中的数都分别被扣除过(例如105),因此必须把这样多扣除的数找补回来。这种思路可用公式表示为: 计算机学院
容易计算出 表示小于等于x的最大整数。 计算机学院
因而 所以,从1到1000的整数中共有543个数能被3、5、7中至少一个整除。 容斥原理 指我们计算满足某些条件的物品的数目时,要排斥那些不应包含在这个计数中的数目,但同时要包容那些被错误地排斥了的数目,以此补偿。 即多退少补, 逐步求精的思想 计算机学院
设在有限集A的元素上定义了n个 性质。如果把具有性质Pi的元素构成的子集合记为Ai(i=1,2,3, …), 表示由同时具有性质Pi和Pj的元素构成的子集合, 表示由同时具有性质Pi,Pj和Pk的元素构成的子集合,其余依此类推。 • 补集表示由A中不具有性质Pi的元素构成的子集合。容斥原理可以叙述如下: 计算机学院
定理8.11 • 有限集A中具有性质P1,P2,…,Pm中至少一个性质的元素个数为 多退 少补 (8.7) 计算机学院
推论8.11.1 • 有限集A中不具有性质P1,P2,…,Pm的元素个数为 多退 少补 (8.8) 计算机学院
例8-4.2 • 对24名科技人员进行掌握外语情况的调查,其统计资料如下:会英、日、德、法语的人数分别为13、5、10和9。其中同时会英语、日语的人数为2;同时会英语和德语、同时会英语和法语、同时会德语和法语两种语言的人数均为4;会日语的人既不会法语也不会德语。试求只会一种语言的人数各为多少?又同时会英、德、法语的人数为多少? 计算机学院
解:设A、B、C、D分别为会英、日、德、法语的人的集合,由已知条件可知: 解:设A、B、C、D分别为会英、日、德、法语的人的集合,由已知条件可知: • |A|=13,|B|=5,|C|=10,|D|=9, • |A∩B|=2,|A∩C|=|A∩D|=|C∩D|=4,|B∩C|=|B∩D|=0, • |A∩B∩C|=|A∩B∩D|=|B∩C∩D|=0, • |A∩B∩C∩D|=0, • |A∪B∪C∪D|=24, 计算机学院
利用容斥原理,并代入已知条件得 24=13+5+10+9-2-4-4-4-0-0+0+0+0 +|A∩C∩D|-0。 得:|A∩C∩D|=1,即同时会英、德、法语的只有1人。 设只会英、日、德、法语的人数分别为x1,x2,x3,x4,则 x1=|A|-|(B∪C∪D)∩A|=|A|-|(B∩A)∪(C∩A)∪(D∩A)| 对B∩A、C∩A、D∩A应用容斥原理,得 |(B∩A)∪(C∩A)∪(D∩A)|=2+4+4-0-0-1+0=9 故,x1=13-9=4。 类似地可求出:x2=3,x3=3,x4=2。 计算机学院
例8-4.3 • 设A是由字母a,b,c构成的长度为n的字符的集合,求其中字母a,b和c都必须出现的字符串数目。 • 令A1、A2、A3分别表示由不出现字母a,b,c的字符串构成的集合,那么问题就变成求集合 的基数。因为字符串的每一位都可以是a,b,c这3个字母中的一个,所以 计算机学院
把这些数据代入8.8式,则得到符合要求的字符串数目为把这些数据代入8.8式,则得到符合要求的字符串数目为 计算机学院
鸽巢原理 • 在定理6.5中我们曾经证明过,当m>n时,不存在从Nm到Nn的单射。这个结论说明了一个简单的道理:如果把这m个物品放入n个盒子中,每个盒子中最多放一个,则必然有物品被剩下而放不进盒子。把这个道理换一个说法,就成了“把m个物品放入n个盒子中,当m>n时,必然有盒子中至少放入了两个物品”。人们更形象地把这个道理表述为如下的“鸽巢原理”: 计算机学院
鸽巢原理 • 如果n+1只鸽子飞入n个鸽巢中,则必定有一个鸽巢中至少飞进了两只鸽子。 计算机学院
例8-5.1 证明在任意11个整数中,至少有2个整数之差是10的倍数。 证明:设这11个整数分别是a1,a2,…,a11 ,它们关于10的余数分别为r1,r2,…,r11。每个余数只能是0,1,…,9中的一个。如果把这11个余数看成鸽子,它们要飞进0,1,…,9这10个巢中,根据鸽巢原理,这11个整数中至少有2个整数关于模10的余数相同,于是这2个之差一定是10的整数倍。 计算机学院
例8-5.2 设有n+1个正整数a1,a2,…,an+1,则总可以找到一对数ai和aj(1i<jn+1),使得它们的差能被n整除。 证明:对ai-a1(i=2,3,…,n+1)取被n除后的余数,则有余数n个。1)若n个余数互不相同,则其中必有一个为0,不妨设为ai0-a1,则ai0-a1能被n整除。2)否则,由鸽巢原理,必有两个余数相同,不妨设ai-a1除以n的余数与aj-a1除以n的余数相同,则ai-aj能被n整除。 计算机学院
加强型鸽巢原理 设q1,q2,…,qn都是正整数。如果有q1+q2+…+qn-n+1只鸽子飞入n个鸽巢中,则下述情形之一必定发生:或者第一个鸽巢中至少有q1只鸽子,或者第二个鸽巢中至少有q2只鸽子,…,或者第n个鸽巢中至少有qn只鸽子。 显然,普通鸽巢原理恰好是形式中q1=q2=…=qn=2的特殊情形。 计算机学院
加强形式用得最多的是当q1=q2=…=qn=r的情形,可以用下面的定理来表述: • 定理8.12若有n只鸽子飞进m个巢中,则至少有一个巢中至少飞进了 只鸽子。这里, 表示小于等于x的最大整数。 计算机学院
例8-5.4 一个人骑车10小时内走完了281公里路程,已知他第一小时走了30公里,最后一小时走了17公里。证明:他一定在某相继的两小时中至少走完了58公里路程。 证明:在这10个小时中有9个相继的两小时,根据题目给定的条件,全部相继的两小时所走的路程之和应该等于281×2-30-17=515公里。现在可以把问题看成是让515只鸽子飞进9个鸽巢,根据定理8.12,必有一个鸽巢中飞进了至少58只鸽子,这就证明了题目的结论。 计算机学院
更进一步推广鸽巢原理,便得到有名的Ramsey定理: 定理8-5.2 在任意6个人的集体中,要么有3个人互相认识,要么有3个人互不认识。 证明:以这6个人中任一个特定人,比如张三作为目标构造两个子集合S1和S2,其中: S1:由与张三互相认识的人组成, S2:由与张三不认识的人组成, 则 。由鸽巢原理,S1和S2中至少有一个集合不少于 人,即不少于3人。 计算机学院
如果S1中至少有3个人,要是其中任何两个人都互不认识,那么就找到了3个互不认识的人;否则,至少有2个人是相互认识的,他们与张三一起构成了3个互相认识的人的集合。 如果S2中至少有3个人,要是其中任何两个人都相互认识,就找到了3个相互认识的人;否则,至少有2个人互相不认识,他们与张三一起组成3个互不认识的人的集合。 • 综上可知,定理结论成立。 计算机学院
习题八 18、20、22、26、27 计算机学院