這個計算器的功能
本工具會針對輸入值 x 計算四種相關數值:階乘 x!、雙階乘 x!!,以及兩者的自然對數 ln(x!) 與 ln(x!!)。只要從「函數」下拉選單挑選想計算的項目,輸入 x 值,就能讀取結果。由於這純粹是數學運算,沒有單位,也不需要任何換算。
使用方式
先選擇一個函數(x!、ln(x!)、x!! 或 ln(x!!)),在變數 x 欄位輸入數值後送出即可。當 x 為整數時,x! 與 x!! 會遵循傳統的組合定義。此外,引擎也接受實數(非整數):它採用 Gamma 函數,因此舉例來說,\(0.5! = \sqrt{\pi}/2\)。負整數則是 Gamma 函數的極點,階乘在此無定義。
公式解析
階乘透過 \(x! = \Gamma(x+1)\)(即 Gamma 函數)擴充到實數範圍。雙階乘則是每隔一項相乘:偶數 n 為 \(n\cdot(n-2)\cdot\cdots\cdot 2\),奇數 n 為 \(n\cdot(n-2)\cdot\cdots\cdot 1\),並以 \(0!! = 1\) 與 \((-1)!! = 1\) 作為基底情形。下列封閉形式可涵蓋所有實數 x:$$x!! = 2^{\frac{x}{2}+\frac{1-\cos\pi x}{4}}\,\pi^{\frac{\cos\pi x - 1}{4}}\,\Gamma\!\left(\tfrac{x}{2}+1\right)$$遇到非常大的引數時,計算器會在對數空間中以 log-gamma 運算,因此永遠不會溢位:$$\ln(x!) = \operatorname{lgamma}(x+1)$$
範例演算
將「函數」設為 x!!、x = 6。6 的雙階乘為 $$6\cdot 4\cdot 2 = 48$$切換到 ln(x!!) 則會得到 \(\ln(48) \approx 3.8712010109\)。同樣地,x = 5 搭配 x! 為 $$1\cdot 2\cdot 3\cdot 4\cdot 5 = 120$$而 5 的 ln(x!) 即 \(\ln(120) \approx 4.7874917428\)。
常見問題
為什麼要提供對數版本?階乘成長極為快速,在 \(x \approx 1.7\times 10^{308}\) 附近就會讓一般浮點數溢位。對數輸出讓你能精確處理天文等級的超大引數。
x 可以是小數嗎?可以。非整數的 x 會採用 Gamma 函數的廣義定義,能在整數值之間做出平滑的內插。
那負數的 x 呢?負的非整數是允許的(透過 Gamma 函數計算),但負整數是極點,階乘與雙階乘在此無定義。