重複組合せとは
重複組合せとは、異なる n 種類の中から同じ種類を何度選んでもよく、しかも選ぶ順序を区別しないという条件で r 個を取り出す方法の総数を表します。記号では nHr と書き、多重集合係数(multiset coefficient)とも呼ばれます。たとえば「4種類のアイスから重複を許して2すくい選ぶとき、何通りの組合せができるか」といった問題に答えてくれます。
この計算機の使い方
種類の数 n(1以上)と、選ぶ個数 r(0以上)を入力します。計算ボタンを押すと、重複を許した組合せ nHr、すなわち相異なる多重集合の正確な個数が表示されます。どちらの入力も0以上の整数で、単位の換算は必要ありません。
公式のしくみ
基本となる等式は $$\overline{C}(n,r) = \binom{n + r - 1}{r} = \frac{\left(\text{Types }(n) + \text{Choose }(r) - 1\right)!}{\text{Choose }(r)!\,\left(\text{Types }(n) - 1\right)!}$$ です。考え方のコツは、選ぶ \(r\) 個と種類を区切る \((n - 1)\) 本の仕切りを一列に並べると \(n + r - 1\) 個の位置ができ、そのうちどこに品物(または仕切り)を置くかを選ぶ、という点にあります。巨大な階乗の計算を避けるため、この計算機では二項係数を安定した乗算ループで求めます。具体的には \(m = n + r - 1\)、\(k = \min(r, n - 1)\) として、\(i = 1..k\) のあいだ \((m - k + i)\) を掛けて \(i\) で割る、という操作を繰り返します。
計算例
初期値の \(n = 4\)、\(r = 2\) では、$$nHr = C(4 + 2 - 1, 2) = C(5, 2) = \frac{5 \cdot 4}{2 \cdot 1} = 10$$ となります。種類 {a, b, c, d} から得られる10通りの組合せは次のとおりです:aa, ab, ac, ad, bb, bc, bd, cc, cd, dd。
よくある質問
普通の組合せとは何が違いますか? 普通の組合せ \(C(n, r)\) は重複を許さないため、各品物は高々1回しか選べません。一方、重複組合せでは同じ種類を何度でも選べるので、総数はより大きくなります。
r = 0 のときは? 「何も選ばない」という空の選び方がちょうど1通りあるため、\(nHr = 1\) になります。
n = 1 のときは? 種類が1つしかない場合はそれを \(r\) 回選ぶしかないので、多重集合はちょうど1つだけ。どんな \(r\) に対しても \(nHr = 1\) です。