容斥原理与多重集合
首先介紹一個重要定理:
設S是有k種類型對象的多重集合,每種元素均具有無限的重復數。那么S的r組合的個數等于:
?
?
問題一:多重集合的組合問題
?
問題描述:給定3個a,4個b,5個c,現在要選10個元素,求一共有多少種組合?
?
分析:本問題就是相當于求S={3·a,4·b,5·c}的10組合數。
首先,多重集合的組合有一個定理,定理描述如下:
設S是有k種類型對象的多重集合,每種元素均具有無限的重復數,那么S的r組合的個數等于:
?
那么既然這樣,我們令S∞={∞·a, ∞·b,∞·c},那么S的10-組合數為
設集合A是S∞的10-組合全體,則|A|=66,現在要求在10-組合中的a的個數小于等于3,b的個數小于等于4,c的個數小于等
于5的組合數.
?
定義性質集合P={P1,P2,P3},其中:?
P1:10組合中a的個數大于等于4;
P2:10組合中b的個數大于等于5;
P3:10組合中c的個數大于等于6;
將滿足性質Pi的10-組合全體記為Ai(1≤i≤3).
那么,A1中的元素可以看作是由S∞的10-4=6組合再拼上4個a構成的,所以
同理有:,,
?
所以根據容斥原理,原問題的解為:
?
問題二:方程解的個數問題
(1)問題描述:已知非負整數不大于7,求方程整數解的個數。
?
分析:其實用容斥,跟上題一樣,先求出總數,因為不可能出現兩個或兩個以上的數大于等于8,所以這里就簡單很多了。
首先,S的10-組合數為:,由于只會出現中的一個大于等于8的情況,所以四種情況一樣的,
其結果都是,所以問題的解就是286-4*10=246
?
(2)問題描述:求方程整數解的個數,其中
?
分析:對于這個問題需要先轉化一下就跟上題一樣了。
令:,然后就有,此類問題不再贅述。答案為21
?
?
問題三:集合劃分問題
問題描述:將一個n元集合劃分為r個非空子集,并給每個子集標上號1,2,3,...r,求劃分方案數。
?
分析:設S為將n元集劃分成有序r部分的全部劃分方案集,注意這里每一部分可以為空,那么我們用總數減去為空的情況就可
以了,那么進一步有一個不為空,兩個不為空,三個不為空,...等等。這樣我們就可以容斥。
?
我們知道?,,?
?
所以最后得到方案數為:
?
?
?
總結
- 上一篇: HDU4577(2013年ACM杭州赛区
- 下一篇: 限制排列与棋盘多项式