## org.apache.commons.math.distribution
Class BinomialDistributionImpl

    java.lang.Object
      org.apache.commons.math.distribution.AbstractDistribution
          org.apache.commons.math.distribution.AbstractIntegerDistribution
              org.apache.commons.math.distribution.BinomialDistributionImpl

All Implemented Interfaces:
  Serializable, BinomialDistribution, DiscreteDistribution, Distribution, IntegerDistribution

    public class BinomialDistributionImpl

extends AbstractIntegerDistribution
implements BinomialDistribution, Serializable

The default implementation of `BinomialDistribution`.

Version:
  $Revision: 1054524 $ $Date: 2011-01-03 05:59:18 +0100 (lun. 03 janv. 2011) $
See Also:
  Serialized Form

Field Summary
`private int` `numberOfTrials` The number of trials.
`private double` `probabilityOfSuccess` The probability of success.
`private static long` `serialVersionUID` Serializable version identifier

Fields inherited from class org.apache.commons.math.distribution.AbstractIntegerDistribution
`randomData`

Constructor Summary
`BinomialDistributionImpl(int trials, double p)` Create a binomial distribution with the given number of trials and probability of success.

Method Summary
`double` `cumulativeProbability(int x)` For this distribution, X, this method returns P(X ≤ x).
`protected int` `getDomainLowerBound(double p)` Access the domain value lower bound, based on `p`, used to bracket a PDF root.
`protected int` `getDomainUpperBound(double p)` Access the domain value upper bound, based on `p`, used to bracket a PDF root.
`int` `getNumberOfTrials()` Access the number of trials for this distribution.
`double` `getNumericalMean()` Returns the mean.
`double` `getNumericalVariance()` Returns the variance.
`double` `getProbabilityOfSuccess()` Access the probability of success for this distribution.
`int` `getSupportLowerBound()` Returns the lower bound of the support for the distribution.
`int` `getSupportUpperBound()` Returns the upper bound of the support for the distribution.
`int` `inverseCumulativeProbability(double p)` For this distribution, X, this method returns the largest x, such that P(X ≤ x) ≤ `p`.
`double` `probability(int x)` For this distribution, X, this method returns P(X = x).
`void` `setNumberOfTrials(int trials)` Deprecated. as of 2.1 (class will become immutable in 3.0)
`private void` `setNumberOfTrialsInternal(int trials)` Change the number of trials for this distribution.
`void` `setProbabilityOfSuccess(double p)` Deprecated. as of 2.1 (class will become immutable in 3.0)
`private void` `setProbabilityOfSuccessInternal(double p)` Change the probability of success for this distribution.

Methods inherited from class org.apache.commons.math.distribution.AbstractIntegerDistribution
`cumulativeProbability, cumulativeProbability, cumulativeProbability, isSupportLowerBoundInclusive, isSupportUpperBoundInclusive, probability, reseedRandomGenerator, sample, sample`

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

Methods inherited from interface org.apache.commons.math.distribution.IntegerDistribution
`cumulativeProbability`

Methods inherited from interface org.apache.commons.math.distribution.DiscreteDistribution
`probability`

Methods inherited from interface org.apache.commons.math.distribution.Distribution
`cumulativeProbability, cumulativeProbability`

Field Detail

### serialVersionUID

    private static final long serialVersionUID

  Serializable version identifier

  See Also:
    Constant Field Values

### numberOfTrials

    private int numberOfTrials

  The number of trials.

### probabilityOfSuccess

    private double probabilityOfSuccess

  The probability of success.

Constructor Detail

### BinomialDistributionImpl

    public BinomialDistributionImpl(int trials,
                                    double p)

  Create a binomial distribution with the given number of trials and probability of success.

  Parameters:
    `trials` - the number of trials.
    `p` - the probability of success.

Method Detail

### getNumberOfTrials

    public int getNumberOfTrials()

  Access the number of trials for this distribution.

  Specified by:
    `getNumberOfTrials` in interface `BinomialDistribution`
  Returns:
    the number of trials.

### getProbabilityOfSuccess

    public double getProbabilityOfSuccess()

  Access the probability of success for this distribution.

  Specified by:
    `getProbabilityOfSuccess` in interface `BinomialDistribution`
  Returns:
    the probability of success.

### setNumberOfTrials

    @Deprecated
    public void setNumberOfTrials(int trials)

  Deprecated. as of 2.1 (class will become immutable in 3.0)

  Change the number of trials for this distribution.

  Specified by:
    `setNumberOfTrials` in interface `BinomialDistribution`
  Parameters:
    `trials` - the new number of trials.
  Throws:
    `IllegalArgumentException` - if `trials` is not a valid number of trials.

### setNumberOfTrialsInternal

    private void setNumberOfTrialsInternal(int trials)

  Change the number of trials for this distribution.

  Parameters:
    `trials` - the new number of trials.
  Throws:
    `IllegalArgumentException` - if `trials` is not a valid number of trials.

### setProbabilityOfSuccess

    @Deprecated
    public void setProbabilityOfSuccess(double p)

  Deprecated. as of 2.1 (class will become immutable in 3.0)

  Change the probability of success for this distribution.

  Specified by:
    `setProbabilityOfSuccess` in interface `BinomialDistribution`
  Parameters:
    `p` - the new probability of success.
  Throws:
    `IllegalArgumentException` - if `p` is not a valid probability.

### setProbabilityOfSuccessInternal

    private void setProbabilityOfSuccessInternal(double p)

  Change the probability of success for this distribution.

  Parameters:
    `p` - the new probability of success.
  Throws:
    `IllegalArgumentException` - if `p` is not a valid probability.

### getDomainLowerBound

    protected int getDomainLowerBound(double p)

  Access the domain value lower bound, based on `p`, used to bracket a PDF root.

  Specified by:
    `getDomainLowerBound` in class `AbstractIntegerDistribution`
  Parameters:
    `p` - the desired probability for the critical value
  Returns:
    domain value lower bound, i.e. P(X < lower bound) < `p`

### getDomainUpperBound

    protected int getDomainUpperBound(double p)

  Access the domain value upper bound, based on `p`, used to bracket a PDF root.

  Specified by:
    `getDomainUpperBound` in class `AbstractIntegerDistribution`
  Parameters:
    `p` - the desired probability for the critical value
  Returns:
    domain value upper bound, i.e. P(X < upper bound) > `p`

### cumulativeProbability

    public double cumulativeProbability(int x)
                                 throws MathException

  For this distribution, X, this method returns P(X ≤ x).

  Specified by:
    `cumulativeProbability` in interface `IntegerDistribution`
  Specified by:
    `cumulativeProbability` in class `AbstractIntegerDistribution`
  Parameters:
    `x` - the value at which the PDF is evaluated.
  Returns:
    PDF for this distribution.
  Throws:
    `MathException` - if the cumulative probability can not be computed due to convergence or other numerical errors.

### probability

    public double probability(int x)

  For this distribution, X, this method returns P(X = x).

  Specified by:
    `probability` in interface `IntegerDistribution`
  Parameters:
    `x` - the value at which the PMF is evaluated.
  Returns:
    PMF for this distribution.

### inverseCumulativeProbability

    public int inverseCumulativeProbability(double p)
                                     throws MathException

  For this distribution, X, this method returns the largest x, such that P(X ≤ x) ≤ `p`.

  Returns `-1` for p=0 and `Integer.MAX_VALUE` for p=1.

  Specified by:
    `inverseCumulativeProbability` in interface `IntegerDistribution`
  Overrides:
    `inverseCumulativeProbability` in class `AbstractIntegerDistribution`
  Parameters:
    `p` - the desired probability
  Returns:
    the largest x such that P(X ≤ x) <= p
  Throws:
    `MathException` - if the inverse cumulative probability can not be computed due to convergence or other numerical errors.
    `IllegalArgumentException` - if p < 0 or p > 1

### getSupportLowerBound

    public int getSupportLowerBound()

  Returns the lower bound of the support for the distribution. The lower bound of the support is always 0 no matter the number of trials and probability parameter.

  Returns:
    lower bound of the support (always 0)
  Since:
    2.2

### getSupportUpperBound

    public int getSupportUpperBound()

  Returns the upper bound of the support for the distribution. The upper bound of the support is the number of trials.

  Returns:
    upper bound of the support (equal to number of trials)
  Since:
    2.2

### getNumericalMean

    public double getNumericalMean()

  Returns the mean. For `n` number of trials and probability parameter `p`, the mean is `n * p`

  Returns:
    the mean
  Since:
    2.2

### getNumericalVariance

    public double getNumericalVariance()

  Returns the variance. For `n` number of trials and probability parameter `p`, the variance is `n * p * (1 - p)`

  Returns:
    the variance
  Since:
    2.2

Copyright (c) 2003-2013 Apache Software Foundation