階乗は、数学の中でも特に「数が急激に大きくなる」性質を持つ演算として知られています。
1の階乗はわずか1ですが、10の階乗ではすでに3,628,800という大きな値になり、100の階乗ともなると想像を絶する桁数に達します。
本記事では、10の階乗から100の階乗までの一覧表をはじめ、1から11までの階乗、50の階乗など、さまざまな範囲の階乗値と桁数をわかりやすくまとめました。
階乗がどれほど急速に増大するか、その規模感をグラフ的な視点も交えながら解説していきます。
数学的な背景や計算のポイントも丁寧にお伝えしますので、学習中の方から興味を持ち始めた方まで、ぜひ参考になさってください。
階乗の急激な増大を一覧で確認!数値と桁数の全体像
それではまず、階乗がどれほど急速に大きくなるかという全体像について解説していきます。
階乗とは、ある自然数nに対して1からnまでのすべての整数を掛け合わせた値のことです。
記号では「n!」と表記し、たとえば5!=5×4×3×2×1=120となります。
この演算の特徴は、数が増えるにつれて値が爆発的に増大することにあります。
指数関数と比べてもはるかに速い増加速度を持ち、100!ともなるとその桁数は3桁に収まらないどころか、157桁という途方もない大きさになります。
1から11までの階乗一覧と数値
まずは基礎となる1から11までの階乗を確認しましょう。
この範囲は手計算でも求められる値が多く、組み合わせや順列の計算でも頻繁に登場します。
| n | n!(階乗の値) | 桁数 |
|---|---|---|
| 1 | 1 | 1桁 |
| 2 | 2 | 1桁 |
| 3 | 6 | 1桁 |
| 4 | 24 | 2桁 |
| 5 | 120 | 3桁 |
| 6 | 720 | 3桁 |
| 7 | 5,040 | 4桁 |
| 8 | 40,320 | 5桁 |
| 9 | 362,880 | 6桁 |
| 10 | 3,628,800 | 7桁 |
| 11 | 39,916,800 | 8桁 |
1!から5!までは比較的小さな値ですが、7!で4桁、10!で7桁、11!で8桁と急速に桁数が増えていくのがわかります。
特に10!=3,628,800は多くの数学の問題でも登場する重要な値です。
この段階ですでに約360万という大きさに達しており、階乗の増大速度の速さが実感できるでしょう。
10の階乗から30の階乗までの一覧
続いて、10から30までの階乗値と桁数を見ていきましょう。
この範囲になると値は非常に大きくなり、日常的な数値感覚を大きく超えてきます。
| n | n!(概算値) | 桁数 |
|---|---|---|
| 10 | 3,628,800 | 7桁 |
| 12 | 479,001,600 | 9桁 |
| 15 | 1,307,674,368,000 | 13桁 |
| 20 | 2,432,902,008,176,640,000 | 19桁 |
| 25 | 約1.551×10²⁵ | 26桁 |
| 30 | 約2.653×10³² | 33桁 |
20!はすでに19桁となり、地球の砂の粒の数(約10の19乗程度とも言われる)に匹敵する大きさです。
30!に至っては33桁となり、数値として書き表すだけでも大変な作業になります。
このように階乗は、nが増えるごとに桁数もほぼ比例して増加していく特徴があります。
グラフで見る階乗の増大イメージ
階乗の増大速度は、グラフで見ると一目瞭然です。
横軸にn、縦軸にn!の対数(log)をとると、ほぼ直線に近い急勾配のグラフが描かれます。
これは階乗が指数関数よりもさらに速く増大することを示しており、数学的には「超指数的増大」とも呼ばれます。
スターリングの近似式:log(n!) ≈ n×log(n) − n
この近似式を使うと、大きなnの階乗の桁数をおおまかに求められます。
たとえばn=100の場合:100×log(100) − 100 ≈ 100×2 − 100 = 100
実際の100!の桁数は157桁ですが、スターリング近似でもその大きさのオーダーが確認できます。
実際に縦軸を対数スケールにしてもグラフが急激に上昇し続けることから、階乗がいかに急速に増大するかがビジュアルとしても伝わってきます。
nが増えるたびにn倍されるという構造が、この驚異的な増大速度を生み出しているのです。
50の階乗と大きな数の世界
続いては、50の階乗を中心に「大きな数」の世界について確認していきます。
50!という数は、私たちの日常感覚では到底想像できない大きさですが、その値と桁数を具体的に確認することで階乗の本質に近づけます。
50の階乗の正確な値と桁数
50!の正確な値は以下のとおりです。
50! = 30,414,093,201,713,378,043,612,608,166,979,581,188,299,763,898,377,856,000,000,000,000
桁数:65桁
この値を見ると、数字そのものが約65桁という膨大な長さになっていることがわかります。
50!の末尾には0が12個並んでいますが、これは50以下の数の中に5の倍数と2の倍数がそれぞれ含まれており、掛け合わされることで10のべき乗が生まれるためです。
末尾の0の個数は「n!の5の因数の個数」によって決まり、50÷5=10、50÷25=2で合計12個となります。
このような性質も、階乗を深く学ぶ上での興味深いポイントです。
宇宙の原子数と比較する階乗の大きさ
階乗の大きさを理解するうえで、宇宙の原子数との比較は非常に有効です。
宇宙全体に存在する原子の数はおよそ10の80乗と推定されており、これは非常に大きな数として知られています。
| 比較対象 | おおよその大きさ |
|---|---|
| 宇宙の原子数 | 約10⁸⁰(81桁) |
| 70! | 約1.198×10¹⁰⁰(101桁) |
| 50! | 約3.04×10⁶⁴(65桁) |
| 52!(トランプの並び順) | 約8.07×10⁶⁷(68桁) |
特に有名な例として、トランプのカード52枚のシャッフルパターンは52!通りで、これは約8.07×10の67乗です。
宇宙の歴史(約138億年)の間に毎秒何兆回シャッフルしても、同じ順序は生まれないと言われており、階乗の大きさの象徴的な例としてよく引用されます。
70!に至っては宇宙の原子数を超えてしまうほどで、階乗という演算の持つスケールの大きさが実感できるでしょう。
40から60の階乗一覧
40から60の範囲の階乗を一覧で確認しておきましょう。
| n | n!(指数表記) | 桁数 |
|---|---|---|
| 40 | 約8.159×10⁴⁷ | 48桁 |
| 45 | 約1.196×10⁵⁶ | 57桁 |
| 50 | 約3.041×10⁶⁴ | 65桁 |
| 55 | 約1.270×10⁷³ | 74桁 |
| 60 | 約8.321×10⁸¹ | 82桁 |
この範囲では、nが5増えるごとに桁数がおおよそ9桁程度増加しています。
60!は82桁となり、宇宙の原子数(約81桁)をすでに超えてしまいます。
このような「現実の物理量を超えた数」が数学の世界では普通に登場するところが、階乗の持つ独特のスケール感といえるでしょう。
10の階乗から100の階乗まで完全一覧表
続いては、10から100までの主要な階乗値と桁数をまとめた一覧表について確認していきます。
この一覧は学習・研究の参考資料としても活用できる内容です。
10から50の階乗一覧(詳細版)
| n | n!(指数表記) | 桁数 | 末尾の0の数 |
|---|---|---|---|
| 10 | 3.629×10⁶ | 7桁 | 2個 |
| 15 | 1.308×10¹² | 13桁 | 3個 |
| 20 | 2.433×10¹⁸ | 19桁 | 4個 |
| 25 | 1.551×10²⁵ | 26桁 | 6個 |
| 30 | 2.653×10³² | 33桁 | 7個 |
| 35 | 1.033×10⁴⁰ | 41桁 | 8個 |
| 40 | 8.159×10⁴⁷ | 48桁 | 9個 |
| 45 | 1.196×10⁵⁶ | 57桁 | 10個 |
| 50 | 3.041×10⁶⁴ | 65桁 | 12個 |
末尾の0の数に注目すると、25のところで急に増えているのがわかります。
これは25=5×5であるため、5の因数が2つ含まれることによるものです。
末尾の0の数は、n!に含まれる5の因数の総数に等しく、レジャンドルの公式として知られる方法で計算できます。
51から100の階乗一覧(詳細版)
| n | n!(指数表記) | 桁数 | 末尾の0の数 |
|---|---|---|---|
| 55 | 1.270×10⁷³ | 74桁 | 13個 |
| 60 | 8.321×10⁸¹ | 82桁 | 14個 |
| 65 | 8.248×10⁹⁰ | 91桁 | 15個 |
| 70 | 1.198×10¹⁰⁰ | 101桁 | 16個 |
| 75 | 2.481×10¹⁰⁹ | 110桁 | 18個 |
| 80 | 7.157×10¹¹⁸ | 119桁 | 19個 |
| 85 | 2.818×10¹²⁸ | 129桁 | 20個 |
| 90 | 1.485×10¹³⁸ | 139桁 | 21個 |
| 95 | 1.032×10¹⁴⁸ | 149桁 | 23個 |
| 100 | 9.333×10¹⁵⁷ | 158桁 | 24個 |
70!でついに桁数が100桁を超え、100!では158桁に達します。
この158桁という数を実感するために比較すると、宇宙の原子数が約81桁であることを考えると、100!は宇宙の原子数の自乗を大きく超えるほどの数であることがわかります。
100の階乗の正確な値と特徴
100!の正確な値は以下のとおりです。
100! = 93,326,215,443,944,152,681,699,238,856,266,700,490,715,968,264,381,621,468,592,963,895,217,599,993,229,915,608,941,463,976,156,518,286,253,697,920,827,223,758,251,185,210,916,864,000,000,000,000,000,000,000,000
桁数:158桁
末尾の0:24個
100!の末尾に0が24個並ぶのは、100以下の5の倍数の合計因数が24個あるためです。
具体的には、5の倍数(5, 10, 15, …, 100)が20個あり、さらに25の倍数(25, 50, 75, 100)が各2個の5を含むため追加で4個、合計24個となります。
末尾の0の数の計算はレジャンドルの公式と呼ばれる手法で求めることが可能です。
レジャンドルの公式による末尾の0の数の求め方
n!の末尾の0の数 = ⌊n/5⌋ + ⌊n/25⌋ + ⌊n/125⌋ + …
100の場合:⌊100/5⌋ + ⌊100/25⌋ = 20 + 4 = 24個
(⌊ ⌋は小数点以下切り捨てを意味します)
スターリングの近似と桁数の計算方法
続いては、スターリングの近似式を使って階乗の桁数を計算する方法について確認していきます。
大きなnに対して階乗を直接計算するのは困難ですが、近似式を使えばおおよその桁数を求めることができます。
スターリングの近似式とは
スターリングの近似(Stirling’s approximation)は、大きなnに対してn!を近似するための数学的な公式です。
最もよく使われる形式は以下のとおりです。
ln(n!) ≈ n×ln(n) − n
または常用対数を使う場合:
log₁₀(n!) ≈ n×log₁₀(n) − n×log₁₀(e) + 0.5×log₁₀(2πn)
≈ n×log₁₀(n) − 0.4343×n + 0.5×log₁₀(2πn)
この近似式は、nが大きくなるほど精度が高くなります。
n=100では誤差が1%以下となり、実用上十分な精度を持ちます。
スターリングの近似式は統計力学や情報理論など、大きな数の組み合わせを扱う分野でも広く使われています。
スターリング近似を使った桁数の計算例
具体的な計算例を見てみましょう。
50!の桁数をスターリング近似で求める
log₁₀(50!) ≈ 50×log₁₀(50) − 0.4343×50 + 0.5×log₁₀(100π)
≈ 50×1.699 − 21.715 + 0.5×2.497
≈ 84.95 − 21.715 + 1.249
≈ 64.48
桁数 = ⌊64.48⌋ + 1 = 65桁(実際の値と一致!)
このように、スターリング近似を使うと比較的簡単に桁数を求められます。
桁数はlog₁₀(n!)の整数部分に1を加えた値になるため、常用対数の値を計算することが鍵となります。
大きなnでも手計算や簡易な計算ツールで対応できる点が、スターリング近似の大きな実用的価値といえるでしょう。
各nにおけるスターリング近似の精度比較
| n | 実際のlog₁₀(n!) | スターリング近似値 | 誤差 |
|---|---|---|---|
| 10 | 6.560 | 6.457 | 約1.6% |
| 20 | 18.386 | 18.310 | 約0.4% |
| 50 | 64.483 | 64.441 | 約0.07% |
| 100 | 157.970 | 157.949 | 約0.01% |
nが大きくなるほど近似の精度が上がることが一目でわかります。
100!の場合、スターリング近似の誤差はわずか0.01%以下となり、実用的な計算ではほぼ正確な値が得られます。
一方でn=10程度では誤差が1〜2%程度あるため、精度を要する場合は注意が必要です。
階乗の応用と数学的性質
続いては、階乗が持つ数学的な性質と、それがどのような場面で応用されるかについて確認していきます。
階乗は単に大きな数を計算するためだけでなく、多くの数学的構造の根幹を担う概念です。
階乗と組み合わせ・順列の関係
階乗が最もよく使われる場面のひとつが、組み合わせ(combination)と順列(permutation)の計算です。
順列の公式:nPr = n! ÷ (n−r)!
組み合わせの公式:nCr = n! ÷ (r! × (n−r)!)
例:10人から3人を選ぶ組み合わせ
10C3 = 10! ÷ (3! × 7!) = 3,628,800 ÷ (6 × 5,040) = 120通り
このように、nとrの組み合わせ計算には必ず階乗が登場します。
組み合わせ論の基礎は階乗によって支えられているといっても過言ではなく、確率計算・統計・暗号理論など幅広い分野で活用されています。
二項係数(パスカルの三角形)も階乗を使って表現でき、数学の多くの分野と深くつながっています。
大きな階乗を扱う際の注意点
大きな階乗をコンピュータで計算する際にはいくつかの注意点があります。
通常の整数型(32ビット・64ビット)では20!を超えるとオーバーフローが発生します。
| データ型 | 表現できる最大の階乗 | 限界値 |
|---|---|---|
| 32ビット符号付き整数 | 12! | 約21億 |
| 64ビット符号付き整数 | 20! | 約922京 |
| 倍精度浮動小数点(double) | 170! | 約1.8×10³⁰⁸ |
| 任意精度演算(多倍長) | 制限なし | メモリ依存 |
170!を超えると倍精度浮動小数点でも表現できなくなり、無限大(Inf)として扱われます。
100!のような大きな階乗を正確に扱うには、任意精度演算ライブラリ(PythonのDecimalモジュールやmathライブラリなど)を使う必要があります。
Pythonではmathモジュールのfactorial関数が任意精度で動作するため、100!や1000!も正確に計算できます。
階乗に関連する数列と定理
階乗はさまざまな数学的定理や数列とも深く関わっています。
代表的なものをいくつか確認しましょう。
ウィルソンの定理:pが素数であるとき、(p−1)! ≡ −1 (mod p)が成立する
例:p=5のとき、4! = 24 ≡ −1 ≡ 4 (mod 5) ✓
これは階乗と素数の関係を示す美しい定理で、素数判定にも応用されます。
また、e(自然対数の底)は階乗を使って以下のように表現できます。
e = 1/0! + 1/1! + 1/2! + 1/3! + … = Σ(1/n!) (n=0から∞)
≈ 1 + 1 + 0.5 + 0.1667 + 0.0417 + … ≈ 2.71828…
このように階乗は、数学の基本定数eとも密接に結びついていることがわかります。
さらにテイラー展開やマクローリン展開でも階乗は分母に登場し、高校数学から大学数学まで幅広い場面で活躍する概念です。
sin(x)やcos(x)、指数関数e^xなどの展開式にも階乗が含まれており、解析学の根幹を支えているといえます。
まとめ
本記事では、10の階乗から100の階乗までの一覧表と桁数、そして1から11・50の階乗や大きな数の世界について詳しく解説しました。
階乗はnが増えるごとにn倍され、指数関数をも超える急激な増大速度を持ちます。
10!は7桁の3,628,800ですが、100!では158桁という宇宙の原子数の自乗をも超える巨大な数になります。
スターリングの近似式を使えば、大きな階乗の桁数をおおよそ計算することができます。
また、末尾の0の数はレジャンドルの公式で求められ、組み合わせ・順列・確率・数論など多くの分野で階乗は必須の道具となっています。
階乗という一見シンプルな演算が、数学の広大な世界と深くつながっていることをぜひ感じ取っていただければ幸いです。