組合學與計數方法

星號與隔板法

如果允許某個小孩拿到零個,把 7 顆相同的糖分給 3 個小孩有幾種方式?或者,同一個問題換個說法,x1 + x2 + x3 = 7 有幾組非負整數解?逐一列舉很痛苦,但一個巧妙的圖像讓它瞬間解決。這個方法叫星號與隔板法,它把問題變成把兩種符號排成一列。

把 7 顆糖畫成一排的 7 個星號。要把它們分給 3 個小孩,插入 2 根隔板:第一根隔板之前的給第 1 個小孩,兩根隔板之間的給第 2 個,第二根之後的給第 3 個。例如,星 星 板 星 板 星 星 星 星 這個排列表示第 1 個小孩拿 2 顆、第 2 個拿 1 顆、第 3 個拿 4 顆。7 個星號與 2 根隔板排成一列的每一種排法,都恰好對應一種分法,反之亦然。所以我們只要算 7 + 2 = 9 個符號的排法,也就是從 9 個位置中選哪 2 個放隔板:C(9,2) = 36。一般而言,把 k 個相同東西分到 n 個盒子(允許空)需要 n-1 根隔板,得 C(n + k - 1, k) = C(n + k - 1, n - 1)。

星號與隔板法正是第四個抽樣格子——無序「放回」選取——的計數,這也是它與四種模型並列的原因。一個常見變化:若每個小孩至少要拿一顆糖,先每人發一顆(用掉 n 顆),再自由分配其餘的,得 C(k - 1, n - 1)。這個方法假設東西相同、盒子可區分;若東西是相異的,那就完全是另一個計數世界了。

a + b + c + d = 10 的非負整數解:那是 10 個星號與 3 根隔板,所以 C(10 + 3, 3) = C(13,3) = 286。若改成 a、b、c、d 每個至少為 1,先每個分 1,再解非負的 a'+b'+c'+d' = 6:C(6+3,3) = C(9,3) = 84。

把 k 個相同東西分到 n 個盒子(允許空):C(n+k-1, k)。

星號與隔板法要求東西「相同」。若東西相異,每個都可獨立放進任一盒子,計數變成 n^k——完全不同的公式。

又稱
sticks and stonesballs and urnsstars and bars星號隔板法插板法