組合せ(表)計算機とは
このツールは、異なる n個のものから r個を選ぶ組合せの総数 \(nCr\)(二項係数)を、r=0 から n まですべての値について一覧表にまとめます。順序を区別せずに選ぶ場合の数を求める計算です。n の値を 1つ入力するだけで、(n+1)行の表と、各行を合計した値(つねに 2 の n乗)が出力されます。多倍長(任意精度)演算を採用しているため、n は最大300まで対応し、\(300C150\)(約89桁)のような天文学的に大きな係数も誤差なく正確に求められます。
使い方
まず、ものの個数 n(0以上の整数、最大300)を入力します。出力される非常に大きな数を短く表示したい場合は、表示精度(有効数字の桁数)を指定してください。これは大きな値の見せ方を変えるだけで、計算そのものの結果には一切影響しません。「計算」を押すと、\(nCr\) の値をすべて並べた表と、全行の合計 \(2^n\) が表示されます。
公式の解説
組合せの公式は $$\binom{n}{r} = \frac{n!}{r!\,(n-r)!}$$ です。階乗どうしの計算では桁が爆発的に大きくなりがちなので、本計算機では \(nC0 = 1\) から始めて \(nCr = nC(r-1) \times (n - r + 1) / r\) という漸化式(掛け算と割り算による方法)で逐次求めています。各ステップを多倍長整数演算で処理するため、つねに正確な値が保たれます。対称性により \(nCr\) は \(nC(n-r)\) と等しく、すべての r についての総和は冪集合の大きさ、すなわち $$\sum_{r=0}^{n} \binom{n}{r} = 2^{n}$$ に一致します。
計算例(n = 5)
\(5C0 = 1\)、\(5C1 = 5\)、\(5C2 = 10\)、\(5C3 = 10\)、\(5C4 = 5\)、\(5C5 = 1\)。各行の合計は $$1 + 5 + 10 + 10 + 5 + 1 = 32$$ となり、これは \(2^5\) に等しくなります。確認として、$$6C2 = \frac{6!}{2! \times 4!} = \frac{720}{2 \times 24} = 15$$ です。
よくある質問
表の行数が n+1 になるのはなぜ? r は 0 から n まで(両端を含む)の値をとるため、選び方の総数が n+1 通りになるからです。
nC0 とはどういう意味? 「何も選ばない」という選び方です。その方法はちょうど1通りなので \(nC0 = 1\) となり、同様に \(nCn = 1\) です。
有効数字を50桁まで指定できるのはなぜ? 大きな係数は桁数が非常に多くなります。通常の倍精度(double)では約15〜16桁を超えると精度が失われてしまうため、表示精度の指定により、切り捨てなしで正確な値そのものを表示できるようにしています。