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
的階乘,可以是整數、浮點數或複數 (取決於exact
和extend
)。陣列輸入以陣列形式返回。
註解
對於
exact=True
的陣列,階乘只計算一次,針對最大的輸入,其他每個結果都在過程中計算。如有必要,輸出 dtype 會增加到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