# Binomial

Binomial distribution constructor.

## Usage

``````var Binomial = require( '@stdlib/math/base/dists/binomial/ctor' );
``````

#### Binomial( [n, p] )

Returns a binomial distribution object.

``````var binomial = new Binomial();

var mu = binomial.mean;
// returns 0.5
``````

By default, `n = 1` and `p = 0.5`, which corresponds to a Bernoulli distribution. To create a distribution having a different `n` (number of trials) and `p` (success probability), provide parameter values.

``````var binomial = new Binomial( 4, 0.2 );

var mu = binomial.mean;
// returns 0.8
``````

## binomial

A binomial distribution object has the following properties and methods...

### Writable Properties

#### binomial.n

Number of trials of the distribution. `n` must be a positive integer.

``````var binomial = new Binomial();

var n = binomial.n;
// returns 1.0

binomial.n = 4;

n = binomial.n;
// returns 4.0
``````

#### binomial.p

Success probability of the distribution. `p` must be a number between 0 and 1.

``````var binomial = new Binomial( 4, 0.2 );

var p = binomial.p;
// returns 0.2

binomial.p = 0.7;

p = binomial.p;
// returns 0.7
``````

### Computed Properties

#### Binomial.prototype.kurtosis

Returns the excess kurtosis.

``````var binomial = new Binomial( 12, 0.4 );

var kurtosis = binomial.kurtosis;
// returns ~-0.153
``````

#### Binomial.prototype.mean

Returns the expected value.

``````var binomial = new Binomial( 12, 0.4 );

var mu = binomial.mean;
// returns ~4.8
``````

#### Binomial.prototype.median

Returns the median.

``````var binomial = new Binomial( 12, 0.4 );

var median = binomial.median;
// returns 5.0
``````

#### Binomial.prototype.mode

Returns the mode.

``````var binomial = new Binomial( 12, 0.4 );

var mode = binomial.mode;
// returns 5.0
``````

#### Binomial.prototype.skewness

Returns the skewness.

``````var binomial = new Binomial( 12, 0.4 );

var skewness = binomial.skewness;
// returns ~-0.118
``````

#### Binomial.prototype.stdev

Returns the standard deviation.

``````var binomial = new Binomial( 12, 0.4 );

var s = binomial.stdev;
// returns ~1.697
``````

#### Binomial.prototype.variance

Returns the variance.

``````var binomial = new Binomial( 12, 0.4 );

var s2 = binomial.variance;
// returns ~2.88
``````

### Methods

#### Binomial.prototype.cdf( x )

Evaluates the cumulative distribution function (CDF).

``````var binomial = new Binomial( 4, 0.2 );

var y = binomial.cdf( 0.5 );
// returns ~0.41
``````

#### Binomial.prototype.logpmf( x )

Evaluates the natural logarithm of the probability mass function (PMF).

``````var binomial = new Binomial( 4, 0.2 );

var y = binomial.logpmf( 2.0 );
// returns ~-1.871
``````

#### Binomial.prototype.mgf( t )

Evaluates the moment-generating function (MGF).

``````var binomial = new Binomial( 4, 0.2 );

var y = binomial.mgf( 0.5 );
// returns ~1.629
``````

#### Binomial.prototype.pmf( x )

Evaluates the probability mass function (PMF).

``````var binomial = new Binomial( 4, 0.2 );

var y = binomial.pmf( 2.0 );
// returns ~0.154
``````

#### Binomial.prototype.quantile( p )

Evaluates the quantile function at probability `p`.

``````var binomial = new Binomial( 4, 0.2 );

var y = binomial.quantile( 0.5 );
// returns 1.0

y = quantile( 1.9 );
// returns NaN
``````

## Examples

``````var Binomial = require( '@stdlib/math/base/dists/binomial/ctor' );

var binomial = new Binomial( 10, 0.4 );

var mu = binomial.mean;
// returns 4.0

var mode = binomial.mode;
// returns 4.0

var s2 = binomial.variance;
// returns 2.4

var y = binomial.cdf( 0.8 );
// returns ~0.382
``````