允許重複的組合

黃志斌發表於2018-09-26

《計算機程式設計藝術·卷4A:組合演算法(一)》的習題 7.2.1.7-15:


首先,我們複習一下組合,見《計算機程式設計藝術·卷1:基本演算法(第3版)》的 1.2.6 節:


接下來,是允許重複的組合,見習題 1.2.6-60 及答案:


習題 7.2.1.7-15 的答案如下:

這個答案有一處錯誤,因為 56 + 35 + 20 + 10 + 4 + 1 = 126 ≠ 252

實際上,投擲 n 顆骰子,相當於從 m = 6 個物件中一次取出 n 個的允許重複的組合,所得結果共有 種。如果把它們分解為以數 j (1 ≤ j ≤ 6) 開頭的話,分別有 種。當 1 ≤ n ≤ 7 時的情況如下所示:

所以,正確的表示式應該是: 126 + 70 + 35 + 15 + 5 + 1 = 252

順便還得到一個恆等式:

相關文章