scipy.special.

factorial2#

scipy.special.factorial2(n, exact=False, extend='zero')[原始碼]#

雙階乘。

這是跳過每隔一個值的階乘。例如, 7!! = 7 * 5 * 3 * 1。它可以數值近似為

n!! = 2 ** (n / 2) * gamma(n / 2 + 1) * sqrt(2 / pi)  n odd
    = 2 ** (n / 2) * gamma(n / 2 + 1)                 n even
    = 2 ** (n / 2) * (n / 2)!                         n even

奇數 n 的公式是複數擴展的基礎。

參數:
n整數或浮點數或複數(或其array_like)

n!! 的輸入值。非整數值需要 extend='complex'。預設情況下,n < 0 的傳回值為 0。

exactbool,可選

如果 exact 設定為 True,則使用整數算術精確計算答案,否則使用上述近似值(更快,但產生浮點數而不是整數)。預設值為 False。

extend字串,可選

'zero''complex' 之一;這決定如何處理值 n<0 - 預設情況下它們為 0,但可以選擇加入雙階乘的複數擴展。這也允許將複數值傳遞給 n

警告

使用 'complex' 擴展也會更改偶數整數的雙階乘值,將它們減少 sqrt(2/pi) ~= 0.79 的因子,請參閱 [1]。

返回:
nf整數或浮點數或複數或 ndarray

n 的雙階乘,以整數、浮點數或複數形式返回(取決於 exactextend)。陣列輸入以陣列形式返回。

參考文獻

範例

>>> from scipy.special import factorial2
>>> factorial2(7, exact=False)
array(105.00000000000001)
>>> factorial2(7, exact=True)
105