scipy.special.

阶乘#

scipy.special.factorial(n, exact=False)[源代码][源代码]#

一个数或一组数的阶乘。

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

n! = n * (n - 1) * (n - 2) * ... * 1
参数:
nint 或 int 类型的类数组对象

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

精确bool, 可选

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

返回:
nf浮点数或整数或ndarray

n 的阶乘,根据 exact 可以是整数或浮点数。

注释

对于 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