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:
java.io.Serializable
,BinomialDistribution
,DiscreteDistribution
,Distribution
,IntegerDistribution
public class BinomialDistributionImpl extends AbstractIntegerDistribution implements BinomialDistribution, java.io.Serializable
The default implementation ofBinomialDistribution
.- Version:
- $Revision: 1054524 $ $Date: 2011-01-03 05:59:18 +0100 (lun. 03 janv. 2011) $
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.apache.commons.math.distribution.AbstractIntegerDistribution
randomData
-
-
Constructor Summary
Constructors Constructor Description BinomialDistributionImpl(int trials, double p)
Create a binomial distribution with the given number of trials and probability of success.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method 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 onp
, used to bracket a PDF root.protected int
getDomainUpperBound(double p)
Access the domain value upper bound, based onp
, 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)void
setProbabilityOfSuccess(double p)
Deprecated.as of 2.1 (class will become immutable in 3.0)-
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.DiscreteDistribution
probability
-
Methods inherited from interface org.apache.commons.math.distribution.Distribution
cumulativeProbability, cumulativeProbability
-
Methods inherited from interface org.apache.commons.math.distribution.IntegerDistribution
cumulativeProbability
-
-
-
-
Method Detail
-
getNumberOfTrials
public int getNumberOfTrials()
Access the number of trials for this distribution.- Specified by:
getNumberOfTrials
in interfaceBinomialDistribution
- Returns:
- the number of trials.
-
getProbabilityOfSuccess
public double getProbabilityOfSuccess()
Access the probability of success for this distribution.- Specified by:
getProbabilityOfSuccess
in interfaceBinomialDistribution
- 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 interfaceBinomialDistribution
- Parameters:
trials
- the new number of trials.- Throws:
java.lang.IllegalArgumentException
- iftrials
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 interfaceBinomialDistribution
- Parameters:
p
- the new probability of success.- Throws:
java.lang.IllegalArgumentException
- ifp
is not a valid probability.
-
getDomainLowerBound
protected int getDomainLowerBound(double p)
Access the domain value lower bound, based onp
, used to bracket a PDF root.- Specified by:
getDomainLowerBound
in classAbstractIntegerDistribution
- 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 onp
, used to bracket a PDF root.- Specified by:
getDomainUpperBound
in classAbstractIntegerDistribution
- 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 interfaceIntegerDistribution
- Specified by:
cumulativeProbability
in classAbstractIntegerDistribution
- 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 interfaceIntegerDistribution
- 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 andInteger.MAX_VALUE
for p=1.- Specified by:
inverseCumulativeProbability
in interfaceIntegerDistribution
- Overrides:
inverseCumulativeProbability
in classAbstractIntegerDistribution
- 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.java.lang.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. Forn
number of trials and probability parameterp
, the mean isn * p
- Returns:
- the mean
- Since:
- 2.2
-
getNumericalVariance
public double getNumericalVariance()
Returns the variance. Forn
number of trials and probability parameterp
, the variance isn * p * (1 - p)
- Returns:
- the variance
- Since:
- 2.2
-
-