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,为整数、浮点数或复数(取决于exact和extend)。数组输入作为数组返回。
附注
对于具有
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