🌐 ZH-TW

🔢 階乘計算器

使用 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。這符合組合詮釋:有且只有一種方式排列零個項目,並且即使在 n=1 時,遞迴定義 n! = n × (n-1)! 仍然成立。
如果輸入負數或小數會怎麼樣?
階乘僅定義於非負整數,因此輸入負數、小數或非數字文字會顯示錯誤訊息。(伽瑪函數將階乘延伸到除負整數外的大多數實數與複數,但此計算器僅支援整數階乘。)