🔢 階乘計算器
即時計算任意非負整數的階乘。
這是什麼工具?
階乘計算器是一款免費線上工具,可計算任意非負整數的階乘。階乘是組合數學、機率論以及數學和電腦科學許多領域中的基礎概念。本計算器使用任意精度算術處理大數輸入。 非負整數 n 的階乘,寫作 n!,是從 1 到 n 所有正整數的乘積。例如,5! = 5 × 4 × 3 × 2 × 1 = 120。根據定義,0! = 1。階乘增長極快:10! 已經是 3,628,800,20! 約為 2.4 × 10¹⁸,100! 有 158 位數字。這種快速增長使階乘在排列組合計算中不可或缺。 階乘在數學中無處不在。它們用於計算排列物體的方式數(排列)、從集合中選擇項目的方式數(組合)、二項式定理中的係數、微積分中的 Taylor 級數展開,以及 Poisson 分佈等機率分佈。本計算器使用 BigInt 算術來處理任意大的階乘而不損失精度。運作原理
本計算器使用 BigInt(JavaScript 內建的任意精度整數型別)來計算階乘。普通 JavaScript 數字對於超過 2⁵³(約 9 × 10¹⁵)的整數會遺失精度,這意味著 20! 及以上用普通數字將不準確。BigInt 完全避免了這一限制,因此計算器可以精確計算 1000! 甚至更大的階乘。 演算法是簡單的迭代乘法:從 1 開始,然後依次乘以從 2 到 n 的每個整數。為了在非常大的數字下提高效率,實作中使用了分治法來處理大 BigInt 值的乘法,對於大輸入來說比樸素的順序乘法更快。 計算器還提供結果中的數字位數,這有助於理解大階乘的數量級。它使用 Stirling 近似公式來估算數字位數以進行驗證:log₁₀(n!) ≈ n × log₁₀(n) - n × log₁₀(e) + 0.5 × log₁₀(2πn)。Ad
使用方法
- 輸入一個非負整數(0 到 10000)。
- 點擊計算按鈕求出階乘。
- 查看精確結果及數字位數。
- 將完整結果複製到剪貼簿。
- 嘗試不同的值以探索階乘的增長。
常見問題
常見問題
階乘增長有多快?
階乘的增長速度超過指數函數。5! = 120,10! = 3,628,800,20! ≈ 2.4 × 10¹⁸。到 70! 時,結果已超過可觀測宇宙中的原子總數。
為什麼 0! 等於 1?
根據定義,0! = 1。這使數學公式保持一致。例如,排列 0 個物體的方式數為 1(空排列),而組合數公式 C(n,0) = 1 也要求 0! = 1。
我能計算的最大階乘是多少?
本計算器使用 BigInt 算術可處理高達約 10000! 的階乘。超過這個範圍,計算可能耗時過長或結果太大而無法高效顯示。
階乘在現實生活中有何用途?
階乘用於排列計數:5 本書在書架上的排列方式有 5! = 120 種。它們還用於機率論(Poisson 分佈)、統計學(二項式係數)、物理學(量子力學)和電腦科學(演算法分析)。
技巧與建議
階乘是組合數學的基石。排列 n 個不同物體的方式數為 n!。從 n 個物體中選擇 k 個的方式數為 n! / (k! × (n-k)!)。處理大階乘時,Stirling 近似提供了快速估算:n! ≈ √(2πn) × (n/e)ⁿ。請記住階乘的增長速度超過指數函數,這就是為什麼具有階乘時間複雜度的演算法(如暴力排列)在 n > 12 左右就變得不切實際。對於涉及階乘的機率計算,通常可以在相乘之前先約去一些項,以避免處理巨大的中間數字。