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 的公式是复数扩展的基础。

参数:
nint 或 float 或 complex(或它们的类数组)

输入 n!! 的值。非整数值需要 extend='complex'。默认情况下,n < 0 的返回值是 0。

exactbool,可选

如果 exact 设置为 True,则使用整数算术精确计算答案,否则使用上面的近似值(更快,但产生浮点数而不是整数)。默认为 False。

extend字符串,可选

'zero''complex' 之一;这决定了如何处理值 n<0 - 默认情况下它们为 0,但可以选择加入双阶乘的复数扩展。这也允许将复数值传递给 n

警告

使用 'complex' 扩展也会改变偶数整数的双阶乘值,将其减小 sqrt(2/pi) ~= 0.79 的系数,见 [1]。

返回:
nfint 或 float 或 complex 或 ndarray

n 的双阶乘,为整数、浮点数或复数(取决于 exactextend)。数组输入以数组形式返回。

参考文献

示例

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