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

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `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

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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