binom(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj])
openfermion.transforms.repconversions.weyl_ordering.binom()
binom(x, y, out=None)
Binomial coefficient considered as a function of two real variables.
For real arguments, the binomial coefficient is defined as
.. math::
\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)}
Where :math:\Gamma
is the Gamma function (gamma
) and :math:\mathrm{B}
is the Beta function (beta
) [1]_.
Parameters
x, y: array_like
Real arguments to :math:\binom{x}{y}
.
out : ndarray, optional
Optional output array for the function values
Returns
scalar or ndarray Value of binomial coefficient.
See Also
comb : The number of combinations of N things taken k at a time.
Notes
The Gamma function has poles at non-positive integers and tends to either
positive or negative infinity depending on the direction on the real line
from which a pole is approached. When considered as a function of two real
variables, :math:\binom{x}{y}
is thus undefined when x
is a negative
integer. binom
returns nan
when x
is a negative integer. This
is the case even when x
is a negative integer and y
an integer,
contrary to the usual convention for defining :math:\binom{n}{k}
when it
is considered as a function of two integer variables.
References
.. [1] https://en.wikipedia.org/wiki/Binomial_coefficient
Examples
The following examples illustrate the ways in which binom
differs from
the function comb
.
from scipy.special import binom, comb
When exact=False
and x
and y
are both positive, comb
calls
binom
internally.
x, y = 3, 2
(binom(x, y), comb(x, y), comb(x, y, exact=True))
(3.0, 3.0, 3)
For larger values, comb
with exact=True
no longer agrees
with binom
.
x, y = 43, 23
(binom(x, y), comb(x, y), comb(x, y, exact=True))
(960566918219.9999, 960566918219.9999, 960566918220)
binom
returns nan
when x
is a negative integer, but is otherwise
defined for negative arguments. comb
returns 0 whenever one of x
or
y
is negative or x
is less than y
.
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)