階乗計算ツール
非負の整数nを入力すると、n!を一桁ずつ正確に表示します。あわせて二重階乗n!!、桁数、末尾の0の個数、スターリングの近似とその誤差もわかります。小数はガンマ関数で扱い、四捨五入は一切ありません。無料で、登録は不要です。
0から10,000までの整数です。4.5のような小数はガンマ関数を使って計算します。
結果
2,432,902,008,176,640,000
n!
19
n!の桁数
4
末尾の0の個数
3,715,891,200
二重階乗 n!!
≈ 2.4227868 × 10^18
スターリングの近似
0.416%
n!をどれだけ下回るか
0.000831%
1/(12n)の補正を加えたときの誤差
計算過程
- 20! = 20 × 19 × … × 2 × 1 = 20 × 19!。つまり各階乗は、ひとつ前の階乗に 20 を掛けたものです。
- 末尾の0はそれぞれ、10 = 2 × 5 の因数に由来します。5は2より少ないので、5の個数を数えます:⌊20/5⌋ + ⌊20/25⌋ + … = 4。
- 二重階乗は2つおきに数を掛けます:20!! = 20 × 18 × 16 × 14 × 12 × 10 × 8 × 6 × 4 × 2 = 3,715,891,200。
- スターリングの公式 √(2πn) (n/e)ⁿ は約 2.4227868 × 10^18 を与え、これは正確な値より 0.416% 低くなります。
階乗計算ツールの使い方
- 1. nを入力します。 0から10,000までの任意の整数です。入力すると結果がすぐに更新されます。
- 2. 正確な値を読み取ります。 小さい階乗は桁区切り付きで表示されます。大きい階乗は科学的記数法で見出しを表示し、すべての桁は、コピーボタン付きでスクロールできる欄に示されます。
- 3. 付随する値を確認します。 桁数、末尾の0の個数、二重階乗n!!、そしてスターリングの近似とn!より下回る量が表示されます。
- 4. 小数を試します。 4.5のような値では、Γ(5.5) = 4.5! が求まります。ガンマ関数は、負の整数を除くすべての数に階乗を拡張するためです。
階乗とは
非負の整数nの階乗n!は、1からnまでのすべての整数の積です:5! = 5 × 4 × 3 × 2 × 1 = 120。n個の異なるものを一列に並べる方法の数を表し、順列、組み合わせ、二項定理の基礎になっています。たとえば3冊の本は3! = 6通りの順に並べられます。各階乗は、ひとつ前の階乗にnを掛けたものです:n! = n × (n − 1)!。
なぜ0!は1なのでしょうか? 規則 n! = n × (n − 1)! をn = 1まで適用すると 1! = 1 × 0! となり、0! = 1 のときだけ成り立ちます。また、何も並べない方法はちょうど1通りという数え方の意味とも一致し、積の要素がない場合の積は慣習として1になります。
| n | n! | 末尾の0 |
|---|---|---|
| 0 | 1 | 0 |
| 1 | 1 | 0 |
| 2 | 2 | 0 |
| 3 | 6 | 0 |
| 4 | 24 | 0 |
| 5 | 120 | 1 |
| 6 | 720 | 1 |
| 7 | 5,040 | 1 |
| 8 | 40,320 | 1 |
| 9 | 362,880 | 1 |
| 10 | 3,628,800 | 2 |
| 15 | 1,307,674,368,000 | 3 |
| 20 | 2,432,902,008,176,640,000 | 4 |
末尾の0:ルジャンドルの公式
n!の末尾の0は、10 = 2 × 5 という因数から生じます。2の因数は5の因数より必ず多いので、末尾の0の個数は 1 × 2 × … × n に含まれる5の個数に等しくなります。5の倍数を数え、25の倍数(それぞれがもう1つの5を含む)を加え、さらに125の倍数を加え、というように足します:0の個数 = ⌊n/5⌋ + ⌊n/25⌋ + ⌊n/125⌋ + …。100!の場合は 20 + 4 = 24個です。100!は全部で158桁あります。
スターリングの近似
nが大きいとき、n!は √(2πn) (n/e)ⁿ で近似されます。近似値は必ず真の値よりわずかに小さく、相対誤差はおよそ1/(12n)です。n = 10では0.83%低く(3.5986956 × 10⁶ に対して 3,628,800)、n = 100では0.083%低くなります(9.3248476 × 10¹⁵⁷ に対して 9.3326215 × 10¹⁵⁷)。(1 + 1/(12n)) を掛けると誤差の大部分が取り除かれます。この近似があるので、対数だけから巨大な階乗の大きさを見積もれます。
二重階乗とガンマ関数
二重階乗 n!! は、nから1つおきに掛け合わせます:9!! = 9 × 7 × 5 × 3 × 1 = 945、8!! = 8 × 6 × 4 × 2 = 384。(n!)! ではありません。慣習により 0!! = 1 で、n!! × (n − 1)!! = n! が成り立ちます。ガンマ関数 Γ(x) は階乗を一般化したもので、整数nについて Γ(n + 1) = n! が成り立ち、(½)! = Γ(1½) = √π / 2 ≈ 0.8862 のように小数にも定義されています。0と負の整数では値がないため、(−1)! と (−2)! は存在しません。
コンピュータで階乗はどこまで大きくできるか
20! = 2,432,902,008,176,640,000 は、符号付き64ビット整数に収まる最大の階乗です。170! ≈ 7.26 × 10³⁰⁶ は、倍精度浮動小数点数に収まる最大のものです。このツールは任意の大きさの整数を使うので、10,000!は35,660桁のまま正確に計算されます。
よくある質問
- なぜ0!は1なのですか?
- 階乗の規則 n! = n × (n − 1)! は n = 1 でも成り立つ必要があり、1 = 1 × 0! となるからです。数える意味とも一致します。0個のものを並べる方法はちょうど1通りあり、何も掛けない積は1だからです。
- 100!は何個の0で終わりますか?
- 24個です。5の因数を数えると、5の倍数が ⌊100/5⌋ = 20 個、25の倍数が ⌊100/25⌋ = 4 個で、合計24個になります。これと組み合わせる2の因数は十分にあります。
- 負の数や小数の階乗は求められますか?
- 負の整数の階乗は求められません。ガンマ関数がその点で極を持つためです。小数や負の非整数はΓ(n + 1)で計算できます:4.5! ≈ 52.34、(−0.5)! = √π ≈ 1.7725 です。
- 二重階乗とは何ですか?
- n!!は、nから1または2まで2つおきに数を掛けた積です。たとえば 7!! = 7 × 5 × 3 × 1 = 105、10!! = 10 × 8 × 6 × 4 × 2 = 3,840 です。(n!)!とは異なり、(n!)!は途方もなく大きな数になります。
- トランプ52枚の並べ方は何通りありますか?
- 52! = 8.0658175… × 10⁶⁷ で、68桁の数です。十分にシャッフルされたトランプの並びは、実用上、これまで誰も持ったことのない並びだと言えます。
- スターリングの近似はどれくらい正確ですか?
- 相対誤差はおよそ1/(12n)です。そのため、n = 10では0.83%低く、n = 100では0.083%低くなります。このツールは、入力したnでの正確な誤差と、1/(12n)の補正を加えた後の誤差を表示します。