广义容斥原理
容斥原理

令U为全体非负整数解,A1为其中x1>5的整数解, A2为其中x2>6的整数解,A3为其中x3>7的整数解。 则|U|=C(17,2)。A1相当于求线性方程 (x1+6)+x2+x3=15
的非负整数解,其个数为|A1|=C(9+3-1,9)=C(11,2)。 类似有:|A2|=C(8+3-1,8)=C(10,2), |A3|=C(7+3-1,8)=C(9,2)。
A B C U A BC A A C A B B B C C 871.
例6 求由abcd这4个字符构成的n位符号串中,a、b、 c都至少出现一次的数目。 令A、B、C分别表示不出现a、b、c的符号串的集合。 A中不出现a,即符号串的每一位只能取bcd之一, 有三种选择,因此|A|=3n。 类似有|B|=|C|= 3n , |A∩B|=|B∩C|=|A∩C|= 2n,|A∩B ∩C |= 1n=1,|U|= 4n。 因此满足条件的符号串的数目为:
例10 第二类Stirling数,是指m个不同的球放到n个 相同的盒子里,且无一空盒的方案数。 先考虑盒子都不相同的情形。 令Ai (i=1,2,…,n)表示第i个盒子为空的放法的集合。 则显然有|U|=nm,|Ai|=(n-1)m。 类似有:|Ai∩Aj|=(n-2)m, |Ai∩Aj∩Ak|=(n-3)m,… 因此第二类Stirling数为: n ! S ( m, m ) A1 A2 ... An
例如60=22×3×5,所以
y( n) = 60(1 1 / 2)(1 1 / 3)(1 1 / 5) 16,
即比60小且与60互素的数有16个: 1,7,11,13, 17, 19, 23,29,31,37,41,43,47,49,53,59。
广义容斥原理及其应用ppt课件

a(0) N mn
a(1)
A1
A2
...
Am
m 1
(m
1)
n
m
a(2)
i 1
j i
Ai
Aj
m 2
(m
2)
n
…………
m
a(k)
...
Ai1
Ai2 ...
Aik
m k
(m
k
)
n
i1 1 i2 i1 ik ik1
2020/3/21
12
第二类Stirling数的展开式
m!S(n, m) A1 A2 ... Am b(0) a(0) a(1) a(2) ... (1)n a(n)
a(m) Ai1 I Ai2 L I Aim
b(m)是正好具有m个性质的元素的个数。
__ __
__
b(0) | A1 A2 An |
__
__
b(m) | Ai1 Ai2 Aim Aim1 Ain |
2020/3/21
6
广义容斥原理
例如,对于n=3,m=2
a(2) A1 I A2 A1 I A3 A2 I A3
问:本月借了这三本书的共有多少人?
2020/3/21
2
文氏图简单解决问题
A:借《组合数学》 B:借《西游记》 C:借《算法导论》
同时借这三本书的人数设为M M=|A∩B∩C|
A
20
24 3
15
B
15
7
C8
2020/3/21
3
若将问题修改成“只借《组合数学》的人数Y?”,“只借一本 书的人数Z?”
n m
a(n)
广义容斥原理及其应用教学资料

广义容斥原理
例如,对于n=3,m=2
a (2 ) A 1 A 2 A 1 A 3 A 2 A 3
b(2)A1 A2 A3 A1 A2 A3 A1 A2 A3
利用这些记号 b(1)=a(1)-2a(2)+3a(3) b(2)=a(2)-斥原理):
b(m)a(m)mm 1a(m1) (1)nmm na(n)
同理:记
Y1= A B C B B A B C A B C Y2= A B C C C A C B A B C
Z=Y+Y1+Y2
容斥原理与广义容斥原理
容斥原理解 决的问题:
|_A 1 _ _A _2 A _n_|
|A1A2 An|
广义容斥原理解决的问题:
__
__
|A 1 A 2 A i A i 1 A n|
广义容斥原理
设有与性质1,2,···,n相关的元素N个,Ai为有第 i 种性质的元素的 集合.i=1,2,…,n
定义a(0)=n;当m>1时
a (m ) AA i1 i2 A im
b(m)是正好具有m个性质的元素的个数。
__ __
__
b( 0 |A 1 ) A 2 A n|
__
__
b ( |A i 1 m A i2 ) A im A im 1 A in|
s(4,2)=11
第二类Stirling数的展开式
n个有区别的球放到m个相同的盒子中(n>m),要求无一空盒,其 不同的方案数用S(n,m)表示,称为第二类Stirling数。即S(n,m) 也就是将n个数拆分成非空的m个部分的方案数。
S(m n,)1m( 1 )kC (m ,k)m (k)n
m !k 0
容斥定理

应用及广义下的容斥定理(一般形式)
•
•
N对夫妇问题
•
•
广义下的容斥定理(一般形式)
•
•
பைடு நூலகம்
•
•
广义容斥定理的应用
•
•
科普一下
• 容斥原理是莫比乌斯反演(Mobius Inversion)在有限偏序集上的一个实例。 • 莫比乌斯环:公元1858年,德国数学家莫比乌斯(Mobius,1790~1868)和约翰· 李斯丁发现: 把一根纸条扭转180°后,两头再粘接起来做成的纸带圈,具有魔术般的性质。普通纸带具 有两个面(即双侧曲面),一个正面,一个反面,两个面可以涂成不同的颜色;而这样的 纸带只有一个面(即单侧曲面),一只小虫可以爬遍整个曲面而不必跨过它的边缘。这种 纸带被称为“莫比乌斯带”(也就是说,它的曲面只有一个)。
再见啦(-_-!)
Ch4广义容斥原理

广义容斥原理是一种强大的工具,用于解决组合数学中的计数问题。
广义容斥原理的定义
广义容斥原理是一种用于计算集合交并运算的定理,适用于处理含有多个集合的复杂计数问题。
核心概念
通过计算多个集合的交集和并集来确定所需计数的对象。
重叠计数
广义容斥原理可以有效处理重叠计数的情况,避免了重复计算。
广义容斥原理是组合数学中非常重要的工具,可以用于解决排列组合、概率计算、图论等领域中的复杂计数问 题。
广义容斥原理的公式推导
广义容斥原理可以通过组合数学的技巧和原理来推导得到。具体的推导过程 可以通过分析交并运算的排斥关系来完成。
广义容斥原理的示例解释
1
例子1: 骰子问题
广义容斥原理可以用来计算同时满足多个骰子点数要求的情况数。
2
例子2: 颜色问题
通过广义容斥原理,可以计算从不同颜色中选择满足一定要求的对象的方法数。
3
例子3:小球问题
广义容斥原理可以用于计算从不同形状和颜色的小球中,选取特定组合的方法数。
广义容斥原理的优缺点分析
1 优点
2 缺点
广义容斥原理是一种通用且强大的计算工具, 适用于处理多个集合的复杂计数问题。
使用广义容斥原理计算复杂问题可能需要较 大的计算量和时间。
广义容斥原理在组合数学中的应用
广义容斥原理的应用场景
生日问题
广义容斥原理可以用于计算在不 同条件下满足特定生日要求的人 数。
彩球问题
通过广义容斥原理,可以确定在 多种颜色和形状的彩球中选取特 定组合的方法数。
信封问题
用于计算在不同排列方式下,所 有信封都被装错信的概率。
广义容斥原理的基本思想
广义容斥原理的基本思想是通过减去重复计数来得到所需计数。通过适当的 组织和计算,可以得到准确的结果。
容斥原理和广义容斥原理

容斥原理和广义容斥原理容斥原理和广义容斥原理是组合数学中常用的计数方法,用于解决涉及多个集合的计数问题。
它们通过巧妙地利用集合的交和并的关系,能够将复杂的计数问题简化为容易处理的子问题,从而提高计数问题的解决效率。
容斥原理是指通过计算每个集合的元素个数,再减去同时属于两个或多个集合的元素个数,从而得到所有集合的总元素个数。
它的基本思想是,对于一个元素可能属于多个集合的情况,我们不能简单地将其计入每个集合的元素个数中,而是需要进行修正,避免重复计数。
容斥原理可以用于解决两个集合的计数问题,也可以推广到多个集合的情况。
广义容斥原理则是对容斥原理的进一步推广和应用。
在容斥原理中,我们只考虑了两个集合之间的交和并关系,而在广义容斥原理中,我们考虑了多个集合之间的交和并关系。
通过逐步添加和减去集合的交集,我们可以得到所有集合的并集和交集的元素个数。
广义容斥原理的应用范围更广,可以解决更为复杂的计数问题。
容斥原理和广义容斥原理的应用场景非常广泛。
在组合数学中,它们被广泛应用于计数问题的求解。
比如,在排列组合问题中,我们经常需要计算满足某些条件的排列或组合的个数。
容斥原理和广义容斥原理可以帮助我们将复杂的条件拆解成多个简单的条件,从而更容易进行计数。
此外,容斥原理和广义容斥原理还可以应用于概率论、图论、数论等领域,解决各种不同类型的计数问题。
在实际应用中,我们可以通过具体的例子来理解容斥原理和广义容斥原理的计数思想。
假设有三个集合A、B、C,我们需要计算满足至少属于一个集合的元素个数。
首先,我们计算每个集合的元素个数,分别为|A|、|B|、|C|。
然后,我们计算两两集合的交集元素个数,分别为|A∩B|、|A∩C|、|B∩C|。
接下来,我们计算三个集合的交集元素个数,即|A∩B∩C|。
最后,根据容斥原理,我们可以得到满足至少属于一个集合的元素个数为:|A∪B∪C| = |A| + |B| + |C| - |A∩B| - |A∩C| - |B∩C| + |A∩B∩C|。
容斥原理

A1
A2
...
An ( 1)k C ( n, k )2k (2n k 1)!
k 0
n
(2n 1)! 2C ( n,1)(2n 2)!
( 1)n 2n ( n 1)!.
2. 有禁区的排列
先看一个例子:设对于1234的排列P=P1P2P3P4, 规定P1≠3,P2≠1,4,P3≠2,4,P4≠2。
A1中的集合是把dog作为一个元素参加排列,因此 有|A1|=24!。 类似有:|A2|=|A3|=24!, |A4|=|A5|=22! 。 由于dog和god不能同时出现,所以|A1∩A2|=0。 由于dog和gum可以以dogum的方式出现,所以有 |A1∩A3|=22!。 类似有:|A1∩A4|=0, |A1∩A5|=0。
A B A B A B 166 100 33 233.
500 B 100, 5
因此能被3或5除尽的数的个数为:
例4 求由abcdef这六个字符组成的全排列中不允许出 现ace和df图象的排列数。 令A、B分别表示出现ace、df图象的排列的集合。 A中是出现ace图象的排列,即ace作为一个元素参 加排列,因此有|A|=4!。 类似有|B|=5!,|A∩B|=3!。 而全集的元素个数为|U|=6!, 因此满足条件的排列数为:
例10 第二类Stirling数,是指m个不同的球放到n个 相同的盒子里,且无一空盒的方案数。 先考虑盒子都不相同的情形。 令Ai (i=1,2,…,n)表示第i个盒子为空的放法的集合。 则显然有|U|=nm,|Ai|=(n-1)m。 类似有:|Ai∩Aj|=(n-2)m, |Ai∩Aj∩Ak|=(n-3)m,… 因此第二类Stirling数为: n ! S ( m, m ) A1 A2 ... An
容斥原理及其应用

容斥原理及其应用容斥原理是组合数学中一种重要的计数技巧,被广泛运用于排列组合、概率统计等领域。
它的核心思想是通过求出多个集合的交集和并集来计算所需的数量,从而避免重复计数,确保准确性和全面性。
本文将介绍容斥原理的基本概念、推导过程以及其在实际问题中的应用。
一、容斥原理的基本概念容斥原理是根据集合的性质和运算规则推导出的一种计数方法。
在给定一组集合时,容斥原理可以帮助我们计算这些集合的交集和并集的元素个数。
在具体运用中,我们将问题转化成求解几个集合的元素个数之和的问题。
容斥原理表达式如下:∣A1∪A2∪⋯∪An∣=∣A1∣+∣A2∣+⋯+∣An∣−∣A1∩A2∣−∣A1∩A3∣−⋯−∣An−1∩An∣+⋯+(−1)^n−1∣An−1∩An∣其中,∣A∣表示集合A的元素个数,∪表示集合的并集,∩表示集合的交集,n表示集合的数量。
二、容斥原理的推导过程容斥原理的推导过程可以通过数学归纳法来实现,下面简要介绍:首先,我们给定两个集合A和B,我们用∣A∣表示集合A的元素个数,用∣B∣表示集合B的元素个数。
如果我们要计算A和B的并集∣A∪B∣,那么可以采取如下步骤:1. 首先,我们直接将∣A∣和∣B∣相加,得到∣A∣+∣B∣。
2. 然后,我们需要减去重复计算的部分,即集合A和B的交集∣A∩B∣。
因为∣A∩B∣这部分元素已经在∣A∣和∣B∣中被计算了一次,所以需要减去∣A∩B∣。
通过以上步骤,我们得到了∣A∪B∣=∣A∣+∣B∣−∣A∩B∣。
这就是容斥原理的基本推导过程。
接下来,我们将容斥原理推广到更多集合的情况。
假设我们有三个集合A、B和C,我们想要计算它们的并集∣A∪B∪C∣,我们可以按照以下步骤进行:1. 首先,我们将∣A∣、∣B∣和∣C∣相加,得到∣A∣+∣B∣+∣C∣。
2. 然后,我们需要减去两两集合的交集部分,即∣A∩B∣、∣A∩C∣和∣B∩C∣。
这是因为这些部分元素在∣A∣、∣B∣和∣C∣中都被计算了一次,所以需要减去。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
点算的奥秘:容斥原理基本公式「容斥原理」(Principle of Inclusion and Exclusion)(亦作「排容原理」)是「点算组合学」中的一条重要原理。
但凡略为复杂、包含多种限制条件的点算问题,都要用到这条原理。
现在首先从一个点算问题说起。
例题1:设某班每名学生都要选修至少一种外语,其中选修英语的学生人数为25,选修法语的学生人数为18,选修德语的学生人数为20,同时选修英语和法语的学生人数为8,同时选修英语和德语的学生人数为13 ,同时选修法语和德语的学生人数为6,而同时选修上述三种外语的学生人数则为3,问该班共有多少名学生?答1:我们可以把上述问题表达为下图:其中红色、绿色和蓝色圆圈分别代表选修英语、法语和德语的学生。
根据三个圆圈之间的交叉关系,可把上图分为七个区域,分别标以A至G七个字母。
如果我们用这七个字母分别代表各字母所在区域的学生人数,那么根据题意,我们有以下七条等式:(1) A+D+E+G = 25;(2) B+D+F+G = 18;(3) C+E+F+G = 20;(4) D+G = 8; (5) E+G = 13;(6) F+G = 6;(7) G = 3。
现在我们要求的是A+B+C+D+E+F+G。
如何利用以上数据求得答案?把头三条等式加起来,我们得到A+B+C+2D+2E+2F+3G = 63。
可是这结果包含了多余的D、E、F和G,必须设法把多余的部分减去。
由于等式(4)-(6)各有一个D、E和F,若从上述结果减去这三条等式,便可以把多余的D、E和 F减去,得A+B+C+D+E+F = 36。
可是这么一来,本来重复重现的G却变被完全减去了,所以最后还得把等式(7)加上去,得最终结果为A+B+C+D+E+F+G = 39,即该班共有39名学生。
□在以上例题中,给定的数据是三个集合的元素个数以及这些集合之间的交集的元素个数。
在该题的解答中,我们交替加上及减去这些给定的数据。
如果我们用S 1、S2和S3分别代表选修英语、法语和德语学生的集合,那么我们要求的答案就是|S1∪ S2∪ S3|,而该题的解答则可以重新表达为|S1∪ S2∪ S3| = (|S1| + |S2| + |S3|) − (|S1∩ S2| + |S1∩ S3| + |S2∩S3|) + |S1∩ S2∩ S3|我们可以把上式推广至集合个数为n的情况,便得到以下的「容斥原理」。
设有n个集合 S1、S2... Sn,那么|S1∪ S2∪ ... Sn|= (|S1| + |S2| + ... |Sn|)− (|S1∩ S2| + |S1∩ S3| + ... |Sn − 1∩ Sn|)+ (|S1∩ S2∩ S3| + |S1∩ S2∩ S4| + ... |Sn − 2∩ Sn − 1∩ Sn|)− (|S1∩ S2∩ S3∩ S4| + ... |Sn − 3∩ Sn − 2∩ Sn − 1∩Sn|)......+ (−1)n − 1 |S1∩ S2∩ ... Sn − 1∩ Sn| (1)有必要对上式作一些解释。
为易于理解,上式分数行列出,每一行都是一些集合元素个数的总和,其中第1行包含全部n个集合S1、S2... Sn;第2行包含所有由2个集合构成的交集,应共有C(n, 2)个项;第3行包含所有由3个集合构成的交集,应共有C(n, 3)个项...第n行包含由全部n个集合构成的交集,这样的交集只有C(n, n) = 1个。
每行的开首交替为一个「加」(相当于「容纳」)和一个「减」(相当于「排斥」)号,第1行开首为「加」号,第2行为「减」号,第3行为「加」号,第4行为「减」号...。
由于当k 为奇数时,(−1)k= −1;当k为偶数时,(−1)k= 1,我们可以把第1行开首的「加」号改写为「+ (−1)0」,把第2行开首的「减」号改写为「+ (−1)1」...如此类推,我们可知第k行开首应有一个「+ (−1)k − 1 」。
我们还可以把上式化简,方法是引入一个新的变项Sn, k来代表上式等号右边的第k行。
Sn, k 是由C(n, k)个项加起来的总和,每个项都是由S1、S2... Sn这n个集合中抽r个出来构成的交集的元素个数。
举例说,当n = 5,k = 3时,S5, 3是由C(5, 3) = 10个项加起来的总和,这10个项都是由S1 ... S5这5个集合中抽3个出来构成的交集的元素个数,其中一个是|S2∩ S4∩ S5|,其余类推。
利用Sn, k以及Σ求和符号,我们便可以把上面的「容斥原理」公式大大简化为:|S1∪ S2∪ ... Sn| = Σ1 ≤ k ≤ n(−1)k − 1 Sn, k(2)接着让我们证明以上「容斥原理」公式(1)的正确性,为此我们必须证明,S1...Sn这n个集合中的每一个元素在公式中都只被加一次。
我们逐一考虑各种集合元素的情况。
首先考虑那些只包含于一个集合中的元素,每个这类元素只出现于上述公式的第1行n个集合的其中一个,因此只会被加一次。
其次考虑那些包含于两个集合的元素,每个这类元素都出现于上述公式的第1行n个集合的其中两个,并且出现于第2行 C(n, 2)个交集的其中一个。
由于每个这类元素在第1行中被加两次并在第2行中被减一次,因此结果该元素在公式中被加一次。
我们把上述推理推广至一般情况,即考虑那些包含于k个集合的元素。
每个这类元素都出现于第1行的其中 C(k, 1) = k个集合,并且出现于第2行的其中C(k, 2)个交集,并且出现于第3行的其中C(k, 3)个交集...并且出现于第k行的其中C(k, k) = 1个交集(注1)。
总括而言,每个这类元素在公式中被加的次数为C(k, 1) − C(k, 2) + C(k, 3) − C(k, 4) ... (−)k − 1C(k, k) = Σ1 ≤ r ≤ k(−1)r− 1 C(k, r)现在的问题是,如何证明上式等于1?答案是借助《点算的奥秘:二项式定理和多项式定理》中介绍的「二项式定理」:(a + b)n= Σ0 ≤ r ≤ nC(n, r) a r b n − r。
为了应用「二项式定理」,我们首先把上式等号右边重写:Σ1 ≤ r ≤ k (−1)r − 1 C(k, r) = −Σ1 ≤ r ≤ k(−1)r C(k, r)= −[Σ0 ≤ r ≤ k(−1)r C(k, r) − (−1)0 C(k, 0)]= −Σ0 ≤ r ≤ kC(k, r) (−1)r + 1现在如果把「二项式定理」中的a、b和n分别设定为−1、1和k,便得到Σ0 ≤ r ≤ kC(k, r) (−1)r = (−1 + 1)k = 0。
把这个结果代入上面最后一行,我们便得到Σ1 ≤ r ≤ k(−1)r − 1 C(k, r) = −0 + 1 = 1。
至此我们证明了每一个元素在「容斥原理」公式中都被加一次,因此该公式是正确的。
在应用上述「容斥原理」公式(1)时,我们必须逐一找出所有集合以及各种交集的元素个数,有时这是颇为繁琐的工作,会令上述公式失去价值,因此「容斥原理」一般应用于「可交换集合」(Exchangeable Sets)。
如果从 n个集合S1、S 2 ... Sn中任意抽取k个出来(1 ≤ r ≤ n),所得交集的元素个数只跟k有关,而跟抽取结果无关,则我们说这n个集合是「可交换」的。
换句话说,不论是由哪k个集合构成的交集,所得交集的元素个数都是同一个数字。
上面「容斥原理」公式(1)的第k行的每一项都是由k个集合构成的交集的元素个数。
如果S1、 S2... Sn是「可交换集合」,那么该行的每一项都是同一个数字,可不妨用符号 nk来代表。
由于该行共有C(n, k)个项,所以该行可简化为(−1)k − 1 C(n, k) nk。
因此,「可交换集合」的「容斥原理」公式便是|S1∪ S2∪ ... Sn| = Σ1 ≤ k ≤ n(−1)k − 1 C(n, k) nk(3)在某些应用中,所求的答案是不属任何指定集合的元素个数,因此我们需要找出以上「容斥原理」公式的变化形式。
设某论域U包含n个集合S1、S2... Sn,现在我们要求不属这n个集合的任何一个的元素个数,即|S1' ∩ S2' ∩ ...S n '|(注2)。
根据集合论的「德.摩根律」(De Morgan's Law),S1' ∩ S2' ∩ ...S n '等于U − (S1∪ S2∪ ... Sn),因此 |S1' ∩ S2' ∩ ... Sn'| = |U| − |S1∪ S2∪ ... Sn| = |U| + (−|S1∪ S2∪ ... Sn|)(注3)。
应用上面的「容斥原理」公式(2),我们便得到|S1' ∩ S2' ∩ ... Sn'| = |U| + Σ1 ≤ k ≤ n(−1)k Sn, k(4)同理,如果S1、S2... Sn是「可交换集合」,那么上式便变成|S1' ∩ S2' ∩ ... Sn'| = |U| + Σ1 ≤ k ≤ n(−1)k C(n, k) nk(5)现在让我们来看看「容斥原理」的一些简单应用例子。
有关该原理的其他应用,以后还会谈到。
例题2:从26个英文字母中(可重复地)抽取10个出来排成字符串(String)(无需考虑这个字符串是否构成一个英文单词),其中不可包含全部5个元音字母(即A、E、I、O、U),问有多少种排法?答2:利用「容斥原理」解题的关键在于,把原题表达为适当的集合。
就本题而言,如果我们用 SA 来代表所有由10个字母组成但不含A的字符串集合...用SU来代表所有由10个字母组成但不含U的字符串集合,那么本题所要求的答案就是|SA ∪ SE∪ SI∪ SO∪ SU|。
由于5个元音字母具有平等的地位,从SA、 SE、S I 、SO和SU这5个集合中任意抽取k个出来所构成的交集的元素个数都是一样的,所以这5个集合是「可交换」的。
因此我们可以用上面的公式(3)来解题,但须先求得 nk(1 ≤ k ≤ 5)的值。
我们先求n1的值,这个值相当于由10个字母组成但不含A、E、I、O、U中某一个字母的字符串的数目。
由于撇除了一个字母,我们可以从余下的25个字母中(可重复地)抽取10个出来排成字符串,这是一个「无限重覆排列」问题,应共有2510个这样的字符串,即n1= 2510。
接着考虑n2,这个值相当于由10个字母组成但不含A、E、I、O、U中某两个字母的字符串的数目。
由于撇除了两个字母,我们可以从余下的24个字母中(可重复地)抽取10个出来排成字符串,因此n2= 2410。