SSJ
V. 2.6.

## umontreal.iro.lecuyer.probdist Class BinomialDist

```java.lang.Object
umontreal.iro.lecuyer.probdist.DiscreteDistributionInt
umontreal.iro.lecuyer.probdist.BinomialDist
```
All Implemented Interfaces:
Distribution

`public class BinomialDistextends DiscreteDistributionInt`

Extends the class `DiscreteDistributionInt` for the binomial distribution with parameters n and p, where n is a positive integer and 0 <= p <= 1. Its mass function is given by

p(x) = nCr(n, x)px(1 - p)n-x = n!/[x!(n - x)!]  px(1 - p)n-x        for x = 0, 1, 2,…n,

and its distribution function is

F(x) = ∑j=0xnCr(n, j)  pj(1 - p)n-j        for x = 0, 1, 2,…n,

where nCr(n, x) is the number of possible combinations of x elements chosen among a set of n elements.

Field Summary
`static double` `MAXN`

Fields inherited from class umontreal.iro.lecuyer.probdist.DiscreteDistributionInt
`EPSILON`

Constructor Summary
```BinomialDist(int n, double p)```
Creates an object that contains the binomial terms, for 0 <= x <= n, and the corresponding cumulative function.

Method Summary
` double` `barF(int x)`
Returns bar(F)(x), the complementary distribution function.
`static double` ```barF(int n, double p, int x)```
Returns bar(F)(x) = P[X >= x], the complementary distribution function.
` double` `cdf(int x)`
Returns the distribution function F evaluated at x (see).
`static double` ```cdf(int n, double p, int x)```
Computes F(x), the distribution function of a binomial random variable with parameters n and p, evaluated at x.
`static BinomialDist` ```getInstanceFromMLE(int[] x, int m)```
Creates a new instance of a binomial distribution with both parameters n and p estimated using the maximum likelihood method, from the m observations x[i], i = 0, 1,…, m - 1.
`static BinomialDist` ```getInstanceFromMLE(int[] x, int m, int n)```
Creates a new instance of a binomial distribution with given (fixed) parameter n, and with parameter p estimated by the maximum likelihood method based on the m observations x[i], i = 0, 1,…, m - 1.
` double` `getMean()`
Returns the mean of the distribution function.
`static double` ```getMean(int n, double p)```
Computes the mean E[X] = np of the binomial distribution with parameters n and p.
`static double[]` ```getMLE(int[] x, int m)```
Estimates the parameters (n, p) of the binomial distribution using the maximum likelihood method, from the m observations x[i], i = 0, 1,…, m - 1.
`static double[]` ```getMLE(int[] x, int m, int n)```
Estimates the parameter p of the binomial distribution with given (fixed) parameter n, by the maximum likelihood method, from the m observations x[i], i = 0, 1,…, m - 1.
` int` `getN()`
Returns the parameter n of this object.
` double` `getP()`
Returns the parameter p of this object.
` double[]` `getParams()`
Returns a table that contains the parameters (n, p) of the current distribution, in regular order: [n, p].
` double` `getStandardDeviation()`
Returns the standard deviation of the distribution function.
`static double` ```getStandardDeviation(int n, double p)```
Computes the standard deviation of the Binomial distribution with parameters n and p.
` double` `getVariance()`
Returns the variance of the distribution function.
`static double` ```getVariance(int n, double p)```
Computes the variance Var[X] = np(1 - p) of the binomial distribution with parameters n and p.
`static int` ```inverseF(int n, double p, double u)```
Computes x = F-1(u), the inverse of the binomial distribution.
` int` `inverseFInt(double u)`
Returns the inverse distribution function F-1(u), where 0 <= u <= 1.
` double` `prob(int x)`
Returns p(x), the probability of x.
`static double` ```prob(int n, double p, double q, int x)```
A generalization of the previous method.
`static double` ```prob(int n, double p, int x)```
Computes and returns the binomial probability p(x) in eq..
` void` ```setParams(int n, double p)```
Resets the parameters to these new values and recomputes everything as in the constructor.
` String` `toString()`

Methods inherited from class umontreal.iro.lecuyer.probdist.DiscreteDistributionInt
`barF, cdf, getXinf, getXsup, inverseF`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### MAXN

`public static double MAXN`
Constructor Detail

### BinomialDist

```public BinomialDist(int n,
double p)```
Creates an object that contains the binomial terms, for 0 <= x <= n, and the corresponding cumulative function. These values are computed and stored in dynamic arrays, unless n exceeds MAXN.

Method Detail

### prob

`public double prob(int x)`
Description copied from class: `DiscreteDistributionInt`
Returns p(x), the probability of x.

Specified by:
`prob` in class `DiscreteDistributionInt`
Parameters:
`x` - value at which the mass function must be evaluated
Returns:
the mass function evaluated at x

### cdf

`public double cdf(int x)`
Description copied from class: `DiscreteDistributionInt`
Returns the distribution function F evaluated at x (see).

Specified by:
`cdf` in class `DiscreteDistributionInt`
Parameters:
`x` - value at which the distribution function must be evaluated
Returns:
the distribution function evaluated at x

### barF

`public double barF(int x)`
Description copied from class: `DiscreteDistributionInt`
Returns bar(F)(x), the complementary distribution function. See the WARNING above.

Overrides:
`barF` in class `DiscreteDistributionInt`
Parameters:
`x` - value at which the complementary distribution function must be evaluated
Returns:
the complementary distribution function evaluated at x

### inverseFInt

`public int inverseFInt(double u)`
Description copied from class: `DiscreteDistributionInt`
Returns the inverse distribution function F-1(u), where 0 <= u <= 1. The default implementation uses binary search.

Overrides:
`inverseFInt` in class `DiscreteDistributionInt`
Parameters:
`u` - value in the interval (0, 1) for which the inverse distribution function is evaluated
Returns:
the inverse distribution function evaluated at u

### getMean

`public double getMean()`
Description copied from interface: `Distribution`
Returns the mean of the distribution function.

### getVariance

`public double getVariance()`
Description copied from interface: `Distribution`
Returns the variance of the distribution function.

### getStandardDeviation

`public double getStandardDeviation()`
Description copied from interface: `Distribution`
Returns the standard deviation of the distribution function.

### prob

```public static double prob(int n,
double p,
int x)```
Computes and returns the binomial probability p(x) in eq..

### prob

```public static double prob(int n,
double p,
double q,
int x)```
A generalization of the previous method. Computes and returns the binomial term f (x) = (n!/x!(n-x)!)pxqn-x, where p and q are arbitrary real numbers (q is not necessarily equal to 1 - p). In the case where 0 <= p <= 1 and q = 1 - p, the returned value is a probability term for the binomial distribution.

### cdf

```public static double cdf(int n,
double p,
int x)```
Computes F(x), the distribution function of a binomial random variable with parameters n and p, evaluated at x.

### barF

```public static double barF(int n,
double p,
int x)```
Returns bar(F)(x) = P[X >= x], the complementary distribution function.

### inverseF

```public static int inverseF(int n,
double p,
double u)```
Computes x = F-1(u), the inverse of the binomial distribution.

### getMLE

```public static double[] getMLE(int[] x,
int m)```
Estimates the parameters (n, p) of the binomial distribution using the maximum likelihood method, from the m observations x[i], i = 0, 1,…, m - 1. The estimates are returned in a two-element array, in regular order: [n, p].

Parameters:
`x` - the list of observations used to evaluate parameters
`m` - the number of observations used to evaluate parameters
Returns:
returns the parameters [hat(n), hat(p)]

### getInstanceFromMLE

```public static BinomialDist getInstanceFromMLE(int[] x,
int m)```
Creates a new instance of a binomial distribution with both parameters n and p estimated using the maximum likelihood method, from the m observations x[i], i = 0, 1,…, m - 1.

Parameters:
`x` - the list of observations to use to estimate the parameters
`m` - the number of observations to use to estimate the parameters

### getMLE

```public static double[] getMLE(int[] x,
int m,
int n)```
Estimates the parameter p of the binomial distribution with given (fixed) parameter n, by the maximum likelihood method, from the m observations x[i], i = 0, 1,…, m - 1. Returns the estimator in an array with a single element.

Parameters:
`x` - the list of observations used to evaluate parameters
`m` - the number of observations used to evaluate parameters
`n` - the number of success
Returns:
returns the parameter [hat(p)]

### getInstanceFromMLE

```public static BinomialDist getInstanceFromMLE(int[] x,
int m,
int n)```
Creates a new instance of a binomial distribution with given (fixed) parameter n, and with parameter p estimated by the maximum likelihood method based on the m observations x[i], i = 0, 1,…, m - 1.

Parameters:
`x` - the list of observations to use to evaluate parameters
`m` - the number of observations to use to evaluate parameters
`n` - the parameter n of the binomial

### getMean

```public static double getMean(int n,
double p)```
Computes the mean E[X] = np of the binomial distribution with parameters n and p.

Returns:
the mean of the Binomial distribution E[X] = np

### getVariance

```public static double getVariance(int n,
double p)```
Computes the variance Var[X] = np(1 - p) of the binomial distribution with parameters n and p.

Returns:
the variance of the binomial distribution Var[X] = np(1 - p)

### getStandardDeviation

```public static double getStandardDeviation(int n,
double p)```
Computes the standard deviation of the Binomial distribution with parameters n and p.

Returns:
the standard deviation of the binomial distribution

### getN

`public int getN()`
Returns the parameter n of this object.

### getP

`public double getP()`
Returns the parameter p of this object.

### getParams

`public double[] getParams()`
Returns a table that contains the parameters (n, p) of the current distribution, in regular order: [n, p].

### setParams

```public void setParams(int n,
double p)```
Resets the parameters to these new values and recomputes everything as in the constructor. From the performance viewpoint, it is essentially the same as constructing a new `BinomialDist` object.

### toString

`public String toString()`
Overrides:
`toString` in class `Object`

SSJ
V. 2.6.

To submit a bug or ask questions, send an e-mail to Pierre L'Ecuyer.