階乗計算機(n!・順列nPr・組み合わせnCr)
非負整数nの階乗n!を正確に計算。順列(nPr)・組み合わせ(nCr)にも対応し、BigIntにより桁数の上限なく厳密な整数値を表示します。0〜20の階乗早見表付き。
0〜20 の階乗早見表
0!から20!までの値をまとめた一覧表です。20!は19桁の数になります。
| n | n! |
|---|---|
| 0 | 1 |
| 1 | 1 |
| 2 | 2 |
| 3 | 6 |
| 4 | 24 |
| 5 | 120 |
| 6 | 720 |
| 7 | 5,040 |
| 8 | 40,320 |
| 9 | 362,880 |
| 10 | 3,628,800 |
| 11 | 39,916,800 |
| 12 | 479,001,600 |
| 13 | 6,227,020,800 |
| 14 | 87,178,291,200 |
| 15 | 1,307,674,368,000 |
| 16 | 20,922,789,888,000 |
| 17 | 355,687,428,096,000 |
| 18 | 6,402,373,705,728,000 |
| 19 | 121,645,100,408,832,000 |
| 20 | 2,432,902,008,176,640,000 |
階乗・順列・組み合わせとは
階乗 n! は1からnまでの整数をすべて掛け合わせた値で、**n個のものを一列に並べる並べ方の総数**を表します。5! = 120、10! = 3,628,800 と、nが少し増えただけで爆発的に大きくなるのが特徴です。20! ですでに18桁を超え、通常の浮動小数点数では正確に表せません。
このツールは **BigInt を使って桁数の上限なく厳密な整数値を計算**します。階乗に加えて順列 nPr(n個からr個を選んで並べる場合の数)と組み合わせ nCr(n個からr個を選ぶ場合の数、順序を問わない)にも対応しています。nPr = n! ÷ (n−r)!、nCr = n! ÷ (r! × (n−r)!) という関係にあり、**並べる順序を区別するかどうか**が両者の唯一の違いです。0〜20の階乗早見表も付いています。
計算する手順
- 計算の種類を選ぶ 階乗(n!)・順列(nPr)・組み合わせ(nCr)のタブから選びます。
- n を入力する 0以上10,000以下の整数です。上限は計算量の都合によるものです。
- r を入力する(順列・組み合わせの場合) 0以上n以下の整数を入力します。
- 結果を確認する 桁数の多い値も省略せず厳密な整数で表示されます。
使いこなすためのヒント
- 階乗(n!)は1からnまでのすべての整数を掛け合わせた値です。例: 5! = 5×4×3×2×1 = 120。特別な定義として 0! = 1 です。
- 順列(nPr)はn個の異なるものからr個を選んで「並べる」場合の数です。順序を区別するため、組み合わせより値が大きくなります。例: 5P2 = 5×4 = 20。
- 組み合わせ(nCr)はn個の異なるものからr個を「選ぶ」場合の数(順序を区別しない)です。例: 5C2 = 10(5P2 = 20 を選んだ2個の並べ替え方2!=2で割った値)。
- 階乗は増加が非常に急激で、20!ですでに19桁、100!に至っては158桁にもなります。このツールはBigIntを使うため、大きなnでも誤差なく正確な値を計算できます。
- nが大きすぎる(10,000超)場合は計算コストの都合上エラーになります。ブラウザが応答不能になることを防ぐための実用上の上限です。
こんなときに使えます
確率の問題を解く
くじ引きやカードの組み合わせなど、場合の数を求める問題の検算に使えます。
並べ方の総数を数える
座席の配置やトーナメントの組み合わせなど、実務上の数え上げにも役立ちます。
二項係数を求める
nCr は二項定理の係数そのものです。パスカルの三角形の値を直接確認できます。
プログラムの検算に使う
自作の階乗関数が大きな n でオーバーフローしていないかを、厳密値と突き合わせて確かめられます。
階乗まわりの用語
- 階乗(n!)
- 1からnまでの整数の積です。**0! = 1 と定義されます**(空の積は1とする規約によります)。
- 順列(nPr)
- n個からr個を選んで**並べる**場合の数です。n! ÷ (n−r)! で求めます。
- 組み合わせ(nCr)
- n個からr個を**選ぶ**場合の数で、順序は区別しません。n! ÷ (r! × (n−r)!) で求めます。
- 二項係数
- (a+b)^n を展開したときの各項の係数で、nCr と一致します。
- BigInt
- JavaScript で桁数の制限なく整数を扱う型です。**通常の数値型は2^53を超えると正確さを失います。**
- スターリングの近似
- n! を n が大きいときに近似する公式です。厳密値が要らない場面で使われます。
よくある質問
余談ですが ― 階乗記号「!」はなぜビックリマークになったのか
階乗を表す「!」という記号は、1808年にフランスの数学者クリスティアン・クランプ(Christian Kramp)が著書の中で導入したとされています。それ以前は数学者によって様々な独自の表記が使われており、統一された記号が存在しませんでした。クランプが選んだ理由は諸説ありますが、階乗の値が急激に大きくなっていく様子への「驚き」を表現したという説がよく知られています。
階乗の急激な増加はスターリングの近似式(n! ≈ √(2πn)(n/e)ⁿ)としても知られ、統計学・確率論・組み合わせ論など幅広い分野で近似計算に利用されています。実際、n!を正確に計算するのが困難なほど大きなnに対しては、この近似式が実用上重要な役割を果たします。
順列・組み合わせの考え方は、宝くじの当選確率計算やトランプのシャッフルパターン数(52枚のトランプの並び方は52!通り、約8×10⁶⁷通り)など、身近な確率の問題を解く基礎になっています。組み合わせ数nCrは「パスカルの三角形」の各行の数値としても現れ、二項定理((a+b)ⁿの展開)とも密接に関連しています。