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 会提升为int64
或object
。使用
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