1. 程式人生 > 其它 >Vscode 新增 Vue 程式碼片段

Vscode 新增 Vue 程式碼片段

容斥原理的解釋,公式,證明與運用

容斥原理

解釋

容斥原理用於求解複合事件概率或集合大小等問題

兩個元素的容斥原理非常常見

\[|A \cup B|=|A|+|B|-|A \cap B| \]

擴充套件到一般形式,容斥原理就是求幾個集合的並集大小,把每個集合的大小相加,再減去任意兩個不同集合的交集,再加上任意三個不同集合的交集,再減去任意四個不同集合的交集……以此類推直到加上或減去所有集合的交集

公式

\[\abs{A_1 \cup A_2 \cup\dots\cup A_n}=\sum_{i=1}^n\abs{A_i}-\sum_{1\le i<j\le n}\abs{A_i\cap A_j}+\dots+(-1)^{n-1}\abs{A_i\cap\dots\cap A_n} \]

換成更美觀簡潔的形式:

\[\abs{\bigcup_{i=1}^nA_i}=\sum_{C \sube B}(-1)^{size(C)-1}\abs{\bigcap_{e \in C}e} \]

證明

我們令一個元素屬於這 \(n\) 個集合中的 \(m\)

對於等式左邊,求並集後這個元素只會被計算 \(1\) 次,也就是說這個元素對於等式左邊的貢獻為 \(1\)

對於等式右邊,第一項中這個元素會被計算 \(m\) 次,也就是貢獻為 \(m\),第二項中只有當這個元素同時屬於 \(A_i,A_j\) 時該元素才會被計算一次,從 \(m\) 個集合中選擇兩個組合,組合數即為該元素被計算的次數,也就是說這個元素會被計算 \({m\choose 2}\)

次,貢獻為 \(-{m\choose 2}\) ,以此類推,對於等式右側的第 \(i\) 項,\(m\) 會被計算 \({m\choose i}\) 次,貢獻為 \((-1)^{i-1}{m\choose i}\) ,所以這個元素對等式右邊的貢獻為

\[\sum_{i=1}^m(-1)^{i-1}{m\choose i}=-\sum_{i=1}^m(-1)^i{m\choose i}=1-\sum_{i=0}^m(-1)^i{m\choose i}=1-(1-1)^m=1 \]

對於每個元素來說,它對等式兩邊的貢獻均為 \(1\) ,所以等式成立

應用

問題一

有6個字母W,Z,C,O,R,Z,用這六個字母進行排序,要求第一個字母不能為R和Z,最後一個字母不能為W和Z,請問共有多少種合法的排列?

考慮求解原問題的逆問題,即第一個字母為R或Z,最後一個字母為W和Z的排列方案

令六個字母任意排列方案集合為 \(U\),第一個字母為R或Z的排列方案集合為 \(A\),最後一個字母為W和Z的排列方案集合為 \(B\),則有

\[|U|=6!=720\quad|A|=2\times5!=240\quad|B|=2\times5!=240\quad|A\cap B|=2\times2\times4!=96 \]

我們要求的答案就是 \(|U|-|A\cup B|\) ,根據容斥原理有

\[\begin{align} |U|-|A\cup B|&=|U|-(|A|+|B|-|A\cap B|)\\ &=720-(240+240-96)\\ &=336 \end{align} \]

問題二

有兩個字母C,三個字母M,四個字母Y,用這九個字母進行排序,要求相同的字母不能相鄰,請問共有多少種合法的排列?

令九個字母任意排列方案集合為 \(U\),字母C全部相鄰的排列方案集合為 \(C\),字母M全部相鄰的排列方案集合為 \(M\),字母M全部相鄰的排列方案集合為 \(M\),則有

\[|U|=\frac{9!}{2!3!4!}=1260\\ |C|=\frac{8!}{1!3!4!}=280\quad|M|=\frac{7!}{2!1!4!}=105\quad|Y|=\frac{6!}{2!3!1!}=60\\ |C\cap M|=\frac{6!}{1!1!4!}=30\quad|M\cap Y|=\frac{4!}{2!1!1!}=12\quad|C\cap Y|=\frac{5!}{1!3!1!}=20\\ |C\cap M\cap Y|=\frac{3!}{1!1!1!}=6 \]

我們要求的答案就是 \(|U|-|C\cup M\cup Y|\) ,根據容斥原理有

\[\begin{align} |U|-|C\cup M\cup Y|&=|U|-(|C|+|M|+|Y|-|C\cap M|-|M\cap Y|-|C\cap Y|+|C\cap M\cap Y|)\\ &=1260-(280+105+60-30-12-20+6)\\ &=871 \end{align} \]

問題三

Luogu P3197 [HNOI2008]越獄 點我傳送

監獄有 \(n\) 個房間,每個房間關押一個犯人,有種 \(m\) 宗教,每個犯人會信仰其中一種。如果相鄰房間的犯人的宗教相同,就可能發生越獄,現在給出 \(n,m\),求有多少種狀態可能發生越獄?

同樣考慮求原問題的逆問題,先求出總的宗教信仰可能數,再減去沒有人越獄的情況就能算出答案

總的宗教信仰可能數為 \(n^m\) ,沒有人越獄也就是任意相鄰的兩個人信仰都不同,考慮從最左邊開始計算,最左側的人的信仰有 \(m\) 種可能,對於他右邊的人,每個人的信仰都不能與自己左邊的人的信仰相同,所以右邊的 \(n-1\) 個人的信仰都有 \(m-1\) 種可能,所以答案為 \(n^m-m(m-1)^n\)

快速冪計算即可


該文為本人原創,轉載請註明出處

部落格園傳送門

洛谷傳送門