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
的数组,阶乘只计算一次,用于最大的输入,每个其他结果都在过程中计算。如果需要,输出数据类型将增加到int64
或object
。对于
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