階乗計算機(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の階乗早見表も付いています。

計算する手順

  1. 計算の種類を選ぶ 階乗(n!)・順列(nPr)・組み合わせ(nCr)のタブから選びます。
  2. n を入力する 0以上10,000以下の整数です。上限は計算量の都合によるものです。
  3. r を入力する(順列・組み合わせの場合) 0以上n以下の整数を入力します。
  4. 結果を確認する 桁数の多い値も省略せず厳密な整数で表示されます。

使いこなすためのヒント

  • 階乗(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 が大きいときに近似する公式です。厳密値が要らない場面で使われます。

よくある質問

0! = 1 は数学的な慣習として定義されています。空集合(何も選ばない)を並べる方法は1通り(何もしない、という1つの並べ方)と考えると自然であり、階乗の性質 n! = n × (n-1)! を n=1 でも成立させるために必要な定義でもあります。

順列(nPr)は「選んで並べる」場合の数で順序を区別します(ABとBAは別)。組み合わせ(nCr)は「選ぶだけ」で順序を区別しません(ABとBAは同じ)。そのため常に nCr ≤ nPr となり、nCr = nPr ÷ r! の関係があります。

10,000までの整数に対応しています。10,000!は35,000桁を超える巨大な数になり、それ以上大きな値は表示・計算コストの都合上、ブラウザの動作が重くなる可能性があるため上限を設けています。

順列・組み合わせの計算はもちろん、確率論(サイコロやトランプの組み合わせ)、統計学(二項分布・ポアソン分布の計算式)、テイラー展開(eˣなどの級数展開に階乗が登場)など、数学の様々な分野で基礎的な役割を果たしています。
ツールくん

余談ですが ― 階乗記号「!」はなぜビックリマークになったのか

階乗を表す「!」という記号は、1808年にフランスの数学者クリスティアン・クランプ(Christian Kramp)が著書の中で導入したとされています。それ以前は数学者によって様々な独自の表記が使われており、統一された記号が存在しませんでした。クランプが選んだ理由は諸説ありますが、階乗の値が急激に大きくなっていく様子への「驚き」を表現したという説がよく知られています。

階乗の急激な増加はスターリングの近似式(n! ≈ √(2πn)(n/e)ⁿ)としても知られ、統計学・確率論・組み合わせ論など幅広い分野で近似計算に利用されています。実際、n!を正確に計算するのが困難なほど大きなnに対しては、この近似式が実用上重要な役割を果たします。

順列・組み合わせの考え方は、宝くじの当選確率計算やトランプのシャッフルパターン数(52枚のトランプの並び方は52!通り、約8×10⁶⁷通り)など、身近な確率の問題を解く基礎になっています。組み合わせ数nCrは「パスカルの三角形」の各行の数値としても現れ、二項定理((a+b)ⁿの展開)とも密接に関連しています。