scipy.special.
factorial2#
- scipy.special.factorial2(n, exact=False, extend='zero')[source]#
双阶乘。
这是跳过每隔一个值的阶乘。例如,
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
的公式是复数扩展的基础。- 参数:
- nint 或 float 或 complex (或它们的类数组)
n!!
的输入值。非整数值需要extend='complex'
。默认情况下,n < 0
的返回值是 0。- exactbool,可选
如果
exact
设置为 True,则使用整数算术精确计算答案,否则使用上述近似值(更快,但会产生浮点数而不是整数)。默认为 False。- extendstring,可选
可以是
'zero'
或'complex'
之一;这决定了如何处理n<0
的值 - 默认情况下它们是 0,但可以选择使用双阶乘的复数扩展。这也允许将复数值传递给n
。警告
使用
'complex'
扩展也会改变偶数整数的双阶乘的值,将其减少一个因子sqrt(2/pi) ~= 0.79
,参见 [1]。
- 返回:
- nfint 或 float 或 complex 或 ndarray
n
的双阶乘,作为整数、浮点数或复数(取决于exact
和extend
)。数组输入作为数组返回。
参考
示例
>>> from scipy.special import factorial2 >>> factorial2(7, exact=False) array(105.00000000000001) >>> factorial2(7, exact=True) 105