🌐 JA

🔢 階乗計算機

JavaScriptのBigIntを使い、n!(nの階乗)を丸め誤差なく正確に計算します。nは0以上5000以下の整数のみ入力できます。

0以上5000以下の整数を入力してください。結果は正確な整数で表示されます。

計算結果
ガイド

詳しく見る

01

階乗(n!)とは?

階乗とは1からnまでのすべての正の整数を掛け合わせた値で、n! = 1 × 2 × 3 × ⋯ × nと定義されます。例えば5! = 1×2×3×4×5 = 120です。慣例として0! = 1と定義されます。階乗は順列・組み合わせ、確率論、級数展開など数学の多くの分野で基本的な道具として使われます。
02

なぜBigIntで計算するのか?

JavaScriptの通常の数値型(Number)は2⁵³-1(約9×10¹⁵)を超えると精度を失います。しかしn!はnが少し大きくなるだけですぐにこの値を超えてしまいます(18!ですでに約6.4×10¹⁵)。本計算機はJavaScriptのBigInt型で掛け算を行うため、nが大きくても丸め誤差のない正確な整数値をそのまま表示できます。
03

参考値と入力上限

5! = 120、10! = 3,628,800、15! = 1,307,674,368,000、20! = 2,432,902,008,176,640,000です。nが大きくなるほど桁数は急激に増え(100!は158桁、1000!は2,568桁)、結果が非常に長くなるため、サーバー・ブラウザの負荷を抑えるためにn ≤ 5000に制限しています。

よくある質問

なぜnの最大値が5000なのですか?
nが大きくなるほどn!の桁数は指数的に増加し(5000!は約16,326桁)、計算と描画に必要なリソースも増えます。過度なリソース消費を防ぐため上限を5000に設定していますが、実用上ほとんどの計算をカバーできる範囲です。
なぜ0!は1なのですか?
0!は数学的な慣例として1と定義されます。これは「何も選ばない場合の並べ方は1通り」という組み合わせ論的な解釈と、階乗の再帰的定義n! = n × (n-1)!がn=1のときも矛盾なく成り立つようにするためです。
負の数や小数を入力するとどうなりますか?
階乗は非負整数に対してのみ定義されるため、負の数・小数・文字などを入力するとエラーメッセージが表示されます(ガンマ関数を使えば負の整数を除く実数・複素数に拡張できますが、本計算機は整数の階乗のみを扱います)。