scipy.special.

factorial#

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

一個數字或數字陣列的階乘。

非負整數 n 的階乘是小於或等於 n 的所有正整數的乘積

n! = n * (n - 1) * (n - 2) * ... * 1
參數:
n整數或浮點數或複數 (或類似陣列)

用於 n! 的輸入值。複數值需要 extend='complex'。預設情況下,n < 0 的返回值為 0。

exact布林值,選用

如果 exact 設定為 True,則使用整數算術精確計算答案,否則使用 gamma 函數近似 (較快,但產生浮點數而不是整數)。預設值為 False。

extend字串,選用

可以是 'zero''complex' 之一;這決定了如何處理 n<0 的值 - 預設情況下它們是 0,但可以選擇加入階乘的複數擴展 (見下文)。

返回:
nf整數或浮點數或複數或 ndarray

n 的階乘,可以是整數、浮點數或複數 (取決於 exactextend)。陣列輸入以陣列形式返回。

註解

對於 exact=True 的陣列,階乘只計算一次,針對最大的輸入,其他每個結果都在過程中計算。如有必要,輸出 dtype 會增加到 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