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}\) 的实际参数。

ndarray,可选

函数值的可选输出数组

返回:
标量或ndarray

二项式系数的值。

参见

comb

从N个事物中每次取k个的组合数。

注释

Gamma 函数在非正整数处有极点,并且根据从实数轴的哪个方向接近极点,趋向于正无穷或负无穷。当被视为两个实变量的函数时,\(\binom{x}{y}\)x 为负整数时是未定义的。当 x 为负整数时,binom 返回 nan。即使 x 是负整数且 y 是整数,这也是成立的,这与通常将 \(\binom{n}{k}\) 视为两个整数变量的函数时的定义惯例相反。

参考文献

[1]

https://en.wikipedia.org/wiki/二项式系数

示例

以下示例展示了 binom 与函数 comb 的不同之处。

>>> from scipy.special import binom, comb

exact=Falsexy 均为正数时,comb 内部调用 binom

>>> x, y = 3, 2
>>> (binom(x, y), comb(x, y), comb(x, y, exact=True))
(3.0, 3.0, 3)

对于较大的值,combexact=True 不再与 binom 一致。

>>> x, y = 43, 23
>>> (binom(x, y), comb(x, y), comb(x, y, exact=True))
(960566918219.9999, 960566918219.9999, 960566918220)

binomx 是负整数时返回 nan,但对于负参数在其他情况下是定义的。combxy 为负数或 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)