scipy.special.

factorial#

scipy.special.factorial(n, exact=False, extend='zero')[source]#

数字或数字数组的阶乘。

非负整数 n 的阶乘是小于或等于 n 的所有正整数的乘积。

n! = n * (n - 1) * (n - 2) * ... * 1
参数:
nint 或 float 或 complex (或类似数组)

输入值用于 n!。复数值需要 extend='complex'。默认情况下,对于 n < 0,返回值是 0。

exactbool, 可选

如果将 exact 设置为 True,则使用整数运算精确计算答案,否则使用伽马函数进行近似(更快,但产生浮点数而不是整数)。默认值为 False。

extendstring, 可选

可以是 'zero''complex';这决定了如何处理值 n<0 - 默认情况下它们为 0,但也可以选择阶乘的复数扩展(如下所示)。

返回:
nfint 或 float 或 complex 或 ndarray

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

附注

对于具有 exact=True 的数组,阶乘仅为最大的输入计算一次,其他结果在过程中计算得出。输出 dtype 增加到 int64object(如果需要)。

exact=False 时,阶乘使用伽马函数近似(这同时也是复数扩展的定义)。

\[n! = \Gamma(n+1)\]

示例

>>> import numpy as np
>>> from scipy.special import factorial
>>> arr = np.array([3, 4, 5])
>>> factorial(arr, exact=False)
array([   6.,   24.,  120.])
>>> factorial(arr, exact=True)
array([  6,  24, 120])
>>> factorial(5, exact=True)
120