容斥原理

容斥原理

设S_1,S_2,…,S_n为有限集合, ∣ S ∣ \left\vert\\{S}\right\vert S表示集合S的大小,则:
∣ ⋃ i = 1 n S i ∣ = ∑ i = 1 n ∣ S i ∣ − ∑ 1 ≤ i &lt; j ≤ n ∣ S i ∩ S j ∣ + ∑ 1 ≤ i &lt; j &lt; k ≤ n ∣ S i ∩ S j ∩ S k ∣ + ⋯ \left\vert\bigcup_{i=1}^nS_i\right\vert=\sum_{i=1}^n\left\vert\\ S_i \right\vert-\sum_{1\le i&lt;j\le n}\left\vert\\ S_i\cap S_j \right\vert+\sum_{1\le i&lt;j&lt;k\le n}\left\vert\\ S_i\cap S_j\cap S_k \right\vert+\cdots i=1nSi=i=1nSi1i<jnSiSj+1i<j<knSiSjSk+

+ ( − 1 ) n + 1 ∣ S 1 ∩ S 2 ∩ . . . . ∩ S n ∣ +(-1)^{n+1}\left\vert\\ S_1\cap S_2\cap ....\cap S_n\right\vert +(1)n+1S1S2....Sn

两个字:去重

用文氏图(Venn图)表示就很简单明了了:
在这里插入图片描述

多重集的组合数

S = { n 1 ⋅ a 1 , n 2 ⋅ a 2 , n 3 ⋅ a 3 , ⋯ &ThinSpace; , n k ⋅ a k } S=\begin{Bmatrix}n_1\cdot a_1,n_2\cdot a_2,n_3\cdot a_3,\cdots,n_k\cdot a_k\end{Bmatrix} S={n1a1,n2a2,n3a3,,nkak}是由 n 1 n_1 n1 a 1 a_1 a1 n 2 n_2 n2 a 2 a_2 a2 ⋯ \cdots n k n_k nk a k a_k ak组成的多重集。设 n = ∑ i = 1 k n i n=\sum_{i=1}^kn_i n=i=1kni,对于任意整数 r ≤ n r\le n rn,从S中取出r个元素组成一个多重集(不考虑顺序),产生的不同多重集的数量为:

C k + r − 1 k − 1 − ∑ i = 1 k C k + r − n i − 2 + ∑ 1 ≤ i &lt; j ≤ k C k + r − n i − n j − 3 k − 1 − ⋯ + ( − 1 ) k C k + r − ∑ i = 1 k n i − ( k + 1 ) k C_{k+r-1}^{k-1}-\sum_{i=1}^kC_{k+r-n_i-2}+\sum_{1\le i&lt;j\le k}C^{k-1}_{k+r-n_i-n_j-3}-\cdots+(-1)^kC_{k+r-\sum_{i=1}^{k}n_i-(k+1)}^k Ck+r1k1i=1kCk+rni2+1i<jkCk+rninj3k1+(1)kCk+ri=1kni(k+1)k

证明:
不考虑 n i n_i ni的限制,从S中任选r个元素,相当于从多重集 { ∞ ⋅ a 1 , ∞ ⋅ a 2 , ⋯ &ThinSpace; , ∞ ⋅ a k } \begin{Bmatrix}\infty\cdot a_1,\infty\cdot a_2,\cdots,\infty\cdot a_k\end{Bmatrix} {a1,a2,,ak}中取出r个元素,根据组合计数的讨论,方案数为 C k + r − 1 k − 1 C_{k+r-1}^{k-1} Ck+r1k1.

S i ( 1 ≤ i ≤ k ) S_i(1\le i \le k) Si(1ik)表示至少包含 n i + 1 n_i+1 ni+1个a_i的多重集。我们先从S中取出 n i + 1 n_i+1 ni+1 a i a_i ai,然后再任选 r − n i − 1 r-n_i-1 rni1个元素,即可构成 S i S_i Si。与上面同理,可以构成不同 S i S_i Si的数量为 C k + r − n i − 2 k − 1 C_{k+r-n_i-2}^{k-1} Ck+rni2k1.

进一步地,先从S中取出 n i + 1 n_i+1 ni+1 a i a_i ai n j + 1 n_j+1 nj+1 a j a_j aj,然后再任选 r − n i − n j − 2 r-n_i-n_j-2 rninj2个元素,即可构成 S i ∩ S j S_i\cap S_j SiSj,方案数为:
C k + r − n i − n j − 3 k − 1 C^{k-1}_{k+r-n_i-n_j-3} Ck+rninj3k1

根据容斥原理,至少有一种 a i a_i ai选取的数量超过 n i n_i ni限制的多重集共有:
∣ ⋃ i = 1 k S i ∣ = ∑ i = 1 k C k + r − n i − 2 − ∑ 1 ≤ i &lt; j ≤ k C k + r − n i − n j − 3 k − 1 + ⋯ + ( − 1 ) k + 1 C k + r − ∑ i = 1 k n i − ( k + 1 ) k \left\vert\\\bigcup_{i=1}^kS_i\right\vert=\sum_{i=1}^kC_{k+r-n_i-2}-\sum_{1\le i&lt;j\le k}C^{k-1}_{k+r-n_i-n_j-3}+\cdots+(-1)^{k+1}C_{k+r-\sum_{i=1}^{k}n_i-(k+1)}^k i=1kSi=i=1kCk+rni21i<jkCk+rninj3k1++(1)k+1Ck+ri=1kni(k+1)k

故满足所有限制的合法多重集共有 C k + r − 1 k − 1 − ∣ ⋃ i = 1 k S i ∣ C_{k+r-1}^{k-1}-\left\vert\\\bigcup_{i=1}^kS_i\right\vert Ck+r1k1i=1kSi个,(也可以用文氏图简单明了的得到)两式相减即得原命题。

证毕。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值