概述
容斥原理
例题:从1到1000中不能被5,6,8整除的整数个数。
令P1具有被5整除的性质,P2具有被6整除的性质,P3被8整除性质。
S是前1000个正整数的集合希望求出三个性质同时不满足的个数
|A1| = floor(1000/5) = 200;|A2| = floor(1000/6) = 166 |A3| = floor(1000/8) = 125
|A1交A2|是可以同时被56整除的,同时被整除就是当且仅当被他们最小公倍数整除
lcm{5,6} = 30
所以|A1 A2| = floor(1000/30) = 33;
同理能被5,6,8都整除的是lcm{5,6,8} = 120
|A1 A2 A3| = floor(1000/120) = 8
所以|~A1 ~A2 ~A3| = 1000 - (200+166+125) + (33+25+41) - 8 = 600
例题:M,A,T,H,I,S,F,U,N存在多少排列使得MATH,IS,FUN都不能作为连续字母出现?
令P1是S排列中包含 MATH性质,P2是包含单词IS连续字母的性质,P3是具有包含单词FUN连续字符的性质。
|S| = 9! = 362880
A1可以看做6个字母MATH,I,S,F,U,N的排列因此|A1| = 6! = 720
A2是M,A,T,H,IS,F,U,N八个字母排列 |A2| = 8! = 40320
A3是排列7个字母M,A,T,H,I,S,FUN |A3| = 7! = 7040
然后求满足2个性质的排列
|A2 A1| 是MATH,IS,F,U,N 其他同理|A1 A2| = 5! |A2 A3| = 6! |A1 A3| = 4!
|A1 A2 A3|是MATH IS FUN的排列是3!
所以|~A1 ~A2 ~A3| = 362880 - 720 - 40320 -5040 + 120 + 24 + 720 -6 = 317658
例题:
从0到99999有多少个包含数字2,5和8的整数?
S是从0到99999的整数集合。令P1具有整数不包含数字2的性质,P2具有整数不包含数字5的性质
P3具有整数不包含数字8的性质。
a0 = 10^5 a1 = 9^5 a2 = 8^5 a3 = 7^5
可以知道本题答案是a0 - 3*a1 + 3*a2 - a3
具有重复的组合
例题确定多重集T={3.a,4.b,5.c}的10组合个数
T* = {inf .a ,inf b,inf *c}
将P1为T*的10-组合多余3个阿P2为10-组合多于4个b的性质
p3为T*10组合具有多余5个C的性质。此时T的10-组合就是T*的10组合不具有性质P1P2P3的10-组合
由于|S| = (r+k-1,r) = (10+3-1,10) = 66
集合A1由a至少出现4次的T*的所有10-组合组成。将A1中任何一个这样的10-组合去掉4个a,那么剩下的T*的一个6-组合
所以|A1| = (6+3-1,6) = 28
类似A2的10组合个数等于T*的5组合个数|A2| = (5+3-1,5) = 21
|A3| = (4+3-1,4) = 15
|A1 A2|由a至少出现4次b至少出现5次的T*10-组合。如果去掉4个a和5个b那么剩下的是T*的1组合。所以|A1 A2| = (1+3-1,1) = 3
A1 A3是0组合|A1 A3| = (0+3-1,0) = (2,0) = 1,A2 A3没有10组合
|A1 A2 A3|同样也没有10-组合
得到|~A1 ~A2 ~A3| = 66 - (28+21+15) + (3+ 1 + 0) = 6
例题:
1<=x1<=5 -2<=x2<=4 0<=x3<=5 3<=x4<=9的方程 x1+x2+x3 +x4 = 18的解的个数?
先领y1 = x1 - 1 y2 = x2+2 y3 = x3,y4 = x4 -3
方程为y1+y2+y3+y4 = 16
0<=y1<=4 ,0<=y2<=6 0<=y3<=5 0<=y4<=6
S的所有非负整数解结合为|S| = (16+4-1,4) = 969
令P1为y1>=5 P2为性质y2>=7 p3为性质y3>=6 p4为性质y4>=7
算A1做变量代换 z1 = y1-5 z2 = y2 =z3=y3,z4 = y4
z1+z2+z3+z4 = 11 |A1| = (14,11) = 364
类似|A2| = 220 |A3| = 286 |A4| = 220
|A1 A2|由y1>=5 y2>=7组成,那么变量代换u1 = y1-5 u2 = y2-7 u3 = y3 u4 = y4
所以u1+u2+u3+u4 = 4 |A1 A2| = (7,4) = 35
类似|A1 A3| = 56...|A3 A4| = 20
而任意三个交都是大于值的所以
|~A1 ~A2 ~A3 ~A4| = 969 - (364 + 220 +286 + 220 ) +(35 +56+35+20+10+20) = 55
错位排列
对于每一个元素都有一个特定的位置,现在要求集合X中的没有元素在指定位置的排列数目。
定理:Dn代表n个数的错排的总数
Dn = n! (1 - 1/1! + 1/2! - 1/3! + ---+(-1)^n 1/n!)
证明:
领S是{1,2,...n}的全部n!个排列的集合。对于J=1,2...n让Pj为排列中j在自然位置上的性质。加入ij = j 则{1,2...n}的排列i1i2...in就具有pj。
Dn = |~a1~a2..~an|
A1是 1i2...in的排列|A1| = (n-1)! |Aj| = (n-1)!在A1 A2的排列是1 2 i3..in所欲|AI Aj| = (n-2)!....|A1 A2 ...AK| = (n-k)!
由容斥原理Dn = n! - (n,1)(n-1)! + (n,2)(n-2)! - (n,3)(n-3)! ....(-1)^n(n,n)0!
= n! - n!/1 + n!/2 -n!/3 + --- (-1)^n n!/n! = n! (1 - 1/1! + 1/2! -1/3! +.. + (-1)^n 1/n!)
而错排的概率为 Dn/n! 由于泰勒展开式 e-1
递推关系 Dn = (n-1) (Dn-2 + Dn-1)
证明:我们将第1位应该从后面N-1个中选择,那么第2位要么是1要么不是1
当I2 = 1的时候 i3 i4..in是n-2个数的错排。而i2!=1的时候 i2i3..in是1不在第一个位置,3不在第二个位置。。相当于i1.i2..in的错排
所以Dn = (n-1)(Dn-2 + Dn-1)
例题:一次聚会上n个男,n个女,这n个女能够有多少种方法选择男半跳舞第一次?每个人都换舞伴的时候第二次选择又有多少种方法?
第一次显然n!种方法。第二次自己对应的值就是男伴不是第一次的舞伴所以选择的错排数是Dn*Dn
带有绝对禁止位置的排列
{1,2,..n}的子集用P(X1,X2,....Xn)表示{1,2,...n}的所有排列i1i2i..in的集合
使得i1不在x1内,i2不在x2内。。。in不在xn内
例题:n=4,X1={1,2},x2={2,3},x3={3,4},x4={1,4}此时(X1,X2,X3,X4)由{1,2,3,4}所有满足
i1!=1,2 i2!=2,3 i3!=3,4 i4!=1,4的排列i1i2i3i4组成集合P(X1,X2,X3,X4)只包含两个排列
3412 和 4123 所以P(X1,X2,X3,X4) = 2
用容斥原理可以得到一般的公式为:
n! - r1(n-1)! + r2(n-2)! - ... + (-1)^k rk(n-k)! _...
例题:
确定将6个非攻击车放到下面6行6列的棋盘的方法书,禁止的放置位置由图上标出了:
r1等于禁放位置数目,r1 = 7
下面计算r2是将2个非攻击性车放置到禁止的位置上方法书,
而r2 = 1 + 2 + 3*4 = 15但是需要满足非攻击
对于r3需要F1中2个和F2中1和或者F1中1个F2中2个
r3 = 1*4 + 3*2 = 10
对于r4则需要F1中2个和F2中两个r4 = 1*2 = 2
r5 = r6 = 0;
所以没有车占据禁止位置的方法数为:
6! - 7*5! + 15*4! - 10*3! + 2*2! = 226
莫比乌斯反演
组合数学上莫比乌斯反演证明不太好懂,可以先从数论及其应用这本书入手。
设f为算术函数,f的和函数F(n) = sigma(f(d))(d|n) 它是根据f的值决定的。
那么是否存在一种关系用F求出f我们令n=1,2,3...8则此时有
F(1) = f(1)
F(2) = f(1) + f(2)
F(3) = f(1) + f(3)
....
F(8) = f(1) + f(2) + f(4) +f(8)
我们可以解除f(n)
f(1) = F(1)
f(2) =F(2) - F(1)
..
f(8) = F(8) - F(4)
注意到f(n)是形式为+-F(n/d)的一些项的和,所以可能存在这样的等式
f(n) = sigma(u(d)F(n/d));
其中u是算术函数等式成立的话,我们可以计算出u(1) = 1u(2) = -1
u(7)= -1 u(8) = 0又有F(p) =f(1) + f(p)给出f(p) = F(p) - F(1)其中p是素数
则u(p) = -1又因为F(p*p) = f(1) + f(p) + f(p*p)
f(p*p) = F(p*p) - (F(p)-F(1)) -F(1) = F(p*p) -F(p)
u(p*p) = 0所以对于任意的素数p切k>1有u(p^k) = 0
定义莫比乌斯函数u(n)定义
u(n) = 1 (n=1)
= (-1)^r (n=p1p2..pr,其中pr为不同的素数)
= 0
例题:
u(330) = u(2.3.5.11) = (-1)^4 = 1 ,u(660) = u(2^2 .3 .5 .11) = 0
莫比乌斯函数u(n)是乘性函数
假设m与n是互素的正整数,为了证明u(n)是乘法性质函数证明u(n) = u(m)u(n)
考虑n=1或者m=1的情况成立
假设m和n中至少一个被素数平方整除,那么mn也被素数平方整除则u(mn) = 0
考虑M和n都不会含有大于1的素数的平方因子,m = p1p2..pn
n = q1q2..qn其中q1q2..qn是不同的素数,由于mn互素,则mn是s+t个不同的互素乘积
所以u(mn) = (-1)^(s+t) = (-1)^s (-1)^t = u(m)u(n)
莫比乌斯函数的和函数在n出的值F(n) = sigma(u(d))(d|n)满足
F(n) = 1 (n=1) F(n) = 0(n>1)
证明如下:n=1的时候F(1) = sigma(u(d)) = u(1) = 1
n>1的时候,假设p是素数,k是正整数
F(p^k) = sigma(u(d)) = u(1) + u(p) + u(p*p) +...u(p^k)
= 1+ (-1) +0 + 0... = 0;
假设n是大于1的正整数,素数分解为n = p1^a1p2^a2..pt^at所以F(n) = F(p1^a1)...F(pt^at)
从而F(n) = 0
莫比乌斯反演公式若f是算术函数F为f的和函数
F(n) = sigma(f(d))(d|n)则对于任意正整数n有f(n) = sigma(u(d)F(n/d)) (d|n)
sigma(f(d))(d|n) = sigma(u(d)sigma(f(e)(e|n/d) )) = sigma(sigma (u(d))f(e)) (e|n/d)
因为d|n e|(n/d)同样有e|n 和 d|(n/e)
所以化简为 sigma( sigma( f(e) u(d))(d|(n/e)) (e|n))
由于 sigma (u(d) )= 0 除非 n/e = 1
sigma(u(d)F(n/d)) (d|n) = f(n) *1 = f(n)
入门题:
http://blog.csdn.net/qw4990/article/details/14055183
最后
以上就是健康学姐为你收集整理的组合数学:容斥原理及其应用容斥原理具有重复的组合 错位排列带有绝对禁止位置的排列莫比乌斯反演的全部内容,希望文章能够帮你解决组合数学:容斥原理及其应用容斥原理具有重复的组合 错位排列带有绝对禁止位置的排列莫比乌斯反演所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复