什麼是雙階乘?
一個數的雙階乘記作 x!!,代表每隔一個整數連乘到 1 或 2 為止。若 x 是奇數,就連乘所有奇數(例如 \(5!! = 5\cdot3\cdot1 = 15\));若 x 是偶數,就連乘所有偶數(\(6!! = 6\cdot4\cdot2 = 48\))。依慣例,0!! = 1,(-1)!! = 1。本計算機更進一步,透過 Gamma 函數將定義延伸到任意實數 x,因此連 0.5!! 這類非整數點也能算出來。
如何使用本計算機
請輸入三個數字:x 的初始值(數列的第一個點)、增量(每一列在 x 上累加的量),以及重複次數(要產生幾列)。本工具會依照 $$x_i = \text{起始值} + i\cdot\text{增量}, \quad i = 0, 1, \dots, \text{次數}-1$$ 建立數列,並逐列列出每個 x 與其雙階乘。若想得到經典的 1!!、2!!、3!!… 對照表,設定起始值 = 1、增量 = 1 即可;若改用小數增量,則可一探這條平滑解析曲線的變化。
公式說明
遇到整數時,我們直接以精確的連乘迴圈計算,避免捨入誤差。對於一般實數 x,本工具採用解析延拓公式 $$x!! = \left(\frac{2}{\pi}\right)^{\frac{1-\cos(\pi x)}{4}} 2^{\frac{x}{2}}\,\Gamma\!\left(\frac{x}{2}+1\right)$$ 其中 \(\Gamma\) 為 Gamma 函數(以 Lanczos 近似法計算)。當 x 為偶數時 \(\cos\pi x = 1\),\((2/\pi)\) 這一項剛好消去;當 x 為奇數時 \(\cos\pi x = -1\),便產生 \((2/\pi)^{\frac12}\) 的修正係數。兩種情形都與整數的計算規則一致。
實例演算
當起始值 = 1、增量 = 1、次數 = 8 時,各列依序為 (1,1)、(2,2)、(3,3)、(4,8)、(5,15)、(6,48)、(7,105)、(8,384)。以公式驗證 x = 5:\(\cos 5\pi = -1\),故指數為 0.5;\((2/\pi)^{0.5} = 0.7979\),\(2^{2.5} = 5.6569\),\(\Gamma(3.5) = 3.32335\),相乘得 $$0.7979\cdot5.6569\cdot3.32335 \approx 15$$
常見問題
x 一定要是整數嗎?不必——透過 Gamma 函數的延拓,任何實數 x 都能計算。
為什麼某個數值會是空白或無限大?負偶數(-2、-4、…)正好落在 Gamma 函數的奇點上,沒有定義,本工具會將這些情形回報為 NaN/無限大。
數值最大能算到多大?雙階乘以階乘等級的速度急速膨脹,x 很大時可能超出雙精度浮點數的上限;因此處理極大數值時,建議把次數設小一點。