scipy.special.

阶乘#

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

计算数字或数字数组的阶乘。

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

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

输入值。如果 n < 0,则返回值为 0。

exactbool,可选

如果为 True,则使用长整数运算精确地计算答案。如果为 False,则使用 gamma 函数快速近似结果。默认为 False。

返回值:
nffloat 或 int 或 ndarray

n 的阶乘,根据 exact 以整数或浮点数形式。

备注

对于 exact=True 的数组,阶乘只计算一次,用于最大的输入,每个其他结果都在过程中计算。如果需要,输出数据类型将增加到 int64object

对于 exact=False,阶乘使用 gamma 函数近似

\[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