組合學與計數方法

補集計數

有時候你想計數的東西龐雜、情況一大堆,而它的「相反」卻簡短又單純。補集計數就是改去計數那個相反的東西,再從總數中減掉的習慣。口號是:與其直接算你想要的,不如算出全部、算出你「不想要」的,再取差。

正式地說,若 S 是全部可能性的集合、A 是你在意的子集,則 |A| = |S| - |非 A|,其中「非 A」是補集。經典的觸發詞是「至少一個」。計數含「至少一個」某物的排法,通常意味著要處理許多重疊的情況(恰好一個、恰好兩個……),但它的補集是「一個都沒有」這個單一乾淨的情況。例如,含「至少一個 7」的四位數密碼很難直接列舉,但總數是 10^4 = 10000,而「沒有 7」的密碼是 9^4 = 6561,所以答案是 10000 - 6561 = 3439。

在機率裡這就是補集法則,P(A) = 1 - P(非 A),是最有用的捷徑之一——生日問題就是這樣解的(先算所有生日都不同的機率,再用 1 去減)。只要你正確算出了總數與補集,這個方法是精確的,不是近似。只要確認補集真的是「除 A 之外的全部」,沒有重疊也沒有遺漏即可。

擲兩顆骰子、至少出現一個六有幾種方式?直接算很瑣碎,但補集「沒有六」有 5 乘 5 = 25 種結果(共 36 種),所以「至少一個六」有 36 - 25 = 11 種結果,機率是 11/36。

用總數減去不想要的:|A| = |S| - |非 A|。

只有當「非 A」確實是固定總數 S 內的補集時才有效。「至少一個」= 總數減「一個都沒有」這個反射很可靠;別把「至少一個」和「恰好一個」搞混。

又称
counting the complementcount what you don't want補集計數反面計數