scipy.special.binom#
- scipy.special.binom(x, y, out=None) = <ufunc 'binom'>#
二項式係數,視為兩個實變數的函數。
對於實數參數,二項式係數定義為
\[\binom{x}{y} = \frac{\Gamma(x + 1)}{\Gamma(y + 1)\Gamma(x - y + 1)} = \frac{1}{(x + 1)\mathrm{B}(x - y + 1, y + 1)}\]其中 \(\Gamma\) 是 Gamma 函數 (
gamma
),而 \(\mathrm{B}\) 是 Beta 函數 (beta
) [1]。- 參數:
- x, y: array_like
\(\binom{x}{y}\) 的實數參數。
- outndarray, 選項性
函數值的選項性輸出陣列
- 回傳值:
- 純量或 ndarray
二項式係數的值。
另請參閱
comb
從 N 個事物中取出 k 個的組合數。
註解
Gamma 函數在非正整數處有極點,並且根據趨近極點的實數線方向,趨向正或負無窮大。當 \(\binom{x}{y}\) 被視為兩個實變數的函數時,如果 x 是負整數,則未定義。
binom
在x
是負整數時回傳nan
。即使在x
是負整數且y
是整數時也是如此,這與將 \(\binom{n}{k}\) 視為兩個整數變數的函數時的常用慣例相反。參考文獻
範例
>>> from scipy.special import binom, comb
當
exact=False
且x
和y
都是正數時,comb
會在內部呼叫binom
。>>> x, y = 3, 2 >>> (binom(x, y), comb(x, y), comb(x, y, exact=True)) (3.0, 3.0, 3)
對於較大的值,使用
exact=True
的comb
不再與binom
一致。>>> x, y = 43, 23 >>> (binom(x, y), comb(x, y), comb(x, y, exact=True)) (960566918219.9999, 960566918219.9999, 960566918220)
binom
在x
是負整數時回傳nan
,但在其他情況下,對於負數參數也有定義。comb
在x
或y
其中之一為負數,或者x
小於y
時,都會回傳 0。>>> x, y = -3, 2 >>> (binom(x, y), comb(x, y)) (nan, 0.0)
>>> x, y = -3.1, 2.2 >>> (binom(x, y), comb(x, y)) (18.714147876804432, 0.0)
>>> x, y = 2.2, 3.1 >>> (binom(x, y), comb(x, y)) (0.037399983365134115, 0.0)