所謂 n 中取 k 的重複組合:
combination with repetitions 或 combination where repetition is allowed意思是從 \(n\) 個相異物中 (distinct objects),可重複地選 \(k\) 個出來, 形成 \(k\) 個元素的 multiset \[\{ a_1, a_2, \cdots, a_k\}\] 這時候 \(n\) 和 \(k\) 沒有大小關係的限制; 因為可以重複選取,所以 \(k\) 可能大於 \(n\) (k may be greater than n)。
所謂 multiset 是容許重複元素的集合:
A multiset is a set that allows repeated elements.重複組合的一個典型例子是:從四種口味的太陽餅當中,任選六個組成一個小禮盒,價格都一樣。 此時 \(n=4\),\(k=6\)。假設四種口味是 \(\{\text{原味}, \text{蜂蜜}, \text{咖啡}, \text{黑糖}\}\),則小禮盒的內容就是一種 multiset;例如
\(\{\text{原味},\text{原味},\text{原味},\text{原味},\text{原味},\text{原味}\}\)都是可行的禮盒,而且它們都「不同」。 只要各口味的太陽餅數量不同,就是一種「不同」的禮盒,四種口味數量的總和是 6。
\(\{\text{原味},\text{原味},\text{原味},\text{蜂蜜},\text{蜂蜜},\text{蜂蜜}\}\)
\(\{\text{原味},\text{原味},\text{原味},\text{蜂蜜},\text{咖啡},\text{黑糖}\}\)
一般而言,\(n\) 中取 \(k\) 的 multiset 之中,令各種相異物件分別出現 \(p_1\)、\(p_2\)、…、\(p_n\) 次(可能是 0 次),它們滿足 \[p_1 + p_2 +\cdots +p_n = k\] 由此可見,「n 中取 k 的重複組合」數量就是
\(p_1 + p_2 +\cdots +p_n = k\) 非負整數解的組數例如太陽餅小禮盒各口味的個數滿足 \(p_1+p_2+p_3+p_4=6\), 而前面舉例的三種小禮盒,分別對應 (corresponding to) \((6,0,0,0)\)、\((3,3,0,0)\)、\((3,1,1,1)\) 這三組解 (3 solutions)。
非負整數解的計量 (counting nonnegative integer solutions) 問題, 有一種標準的「珠與隔板」模型 (model of beads and bars)。 但是有另一種想法,也很有啟發性 (inspiration),如下。
非負整數解的問題可以轉換成正整數解 (positive integer solution)。 令 \(q_1=p_1+1\)、\(q_2=p_2+1\)、…、\(q_n=p_n+1\),則
\(p_1 + p_2 +\cdots+p_n = k\) 等價於 \(q_1 + q_2 +\cdots+q_n = n+k\)一組非負整數解 \((p_1, p_2, \ldots, p_n)\) 等價於 (is equivalent to) 一組正整數解 \((q_1, q_2, \ldots, q_n)\)。
正整數解的組數 (number of positive integer solutions) 就容易想像了: 想像 \(n+k\) 顆珠子排成一列,當中有 \(n+k-1\) 個間隔,任選 \(n-1\) 個出來, 就把那 \(n+k\) 顆珠子隔成 \(n\) 段,每段至少有 1 顆珠子; 每段的珠子數量 \(q_1\)、\(q_2\)、……、\(q_n\) 就是 \(q_1 + q_2 +\cdots+q_n = n+k\) 的一組正整數解。 所以它有 \({n+k-1\choose n-1}\) 組正整數解,也就是說
\(p_1 + p_2 +\cdots+p_n = k\) 有 \(\displaystyle{n+k-1\choose n-1}\) 組非負整數解再換句話說:
\(n\) 中取 \(k\) 有 \(\displaystyle{n+k-1\choose n-1}\) 種重複組合。例如,可能有 \({9\choose 3}=84\) 種不同內容的太陽餅小禮盒。
[語音講解:repeatcombi.mp3] |