數學學院

首頁 › 大學 › 大二

容斥原理計數

大二 · 離散數學

觀念

ABC三者交集|A∪B∪C| = |A|+|B|+|C| −|A∩B|−|B∩C|−|A∩C| + |A∩B∩C|

容斥原理 (inclusion–exclusion) 數「至少屬於一個集合」的元素:∣A∪B∪C∣=∣A∣+∣B∣+∣C∣−∣A∩B∣−∣B∩C∣−∣A∩C∣+∣A∩B∩C∣|A\cup B\cup C| = |A|+|B|+|C| - |A\cap B| - |B\cap C| - |A\cap C| + |A\cap B\cap C| 交替加減是為了讓每個元素恰好被數一次。「一個都不屬於」= 全體減去聯集。

算例:1 到 100 中被 2 或 3 整除:50+33−16=6750 + 33 - 16 = 67(同時被整除看 lcm=6\text{lcm} = 6);都不被整除 33 個。

經典應用是錯排 (derangement):nn 個人都拿不到自己帽子的方法數 Dn=n!∑k=0n(−1)kk!D_n = n!\sum_{k=0}^n\frac{(-1)^k}{k!},D3=2D_3 = 2、D4=9D_4 = 9、D5=44D_5 = 44;nn 大時 Dn/n!→1e≈0.37D_n/n!\to\frac{1}{e}\approx0.37。

容斥也用來數映成函數個數、歐拉函數 φ(n)\varphi(n) 的公式、以及機率裡「至少一個」的精確計算。

例題

11 到 5050 的整數中,既不能被 44 也不能被 66 整除的有幾個?

看解法與答案

「都不能整除」是「至少被一個整除」的餘事件,先用容斥算後者。

各自計數:44 的倍數 ⌊50/4⌋=12\lfloor 50/4\rfloor = 12 個;66 的倍數 ⌊50/6⌋=8\lfloor 50/6\rfloor = 8 個;同時是兩者倍數 = lcm(4,6)=12\text{lcm}(4,6) = 12 的倍數,⌊50/12⌋=4\lfloor 50/12\rfloor = 4 個。

至少被一個整除:12+8−4=1612 + 8 - 4 = 16;都不能:50−16=3450 - 16 = 34。

答案: 3434

用在哪裡

插畫

容斥原理計數:情境插畫容斥原理計數:例題插畫

學習路徑

先學會

學完可以接著學

互動練習在本機版

這個網站是觀念與例題的閱讀版。互動練習(每次出不同數字的新題、自動判對錯、錯題本、熟練度與複習排程)在「數學學院」本機版,目前還沒對外開放。