Class PascalDistributionImpl
java.lang.Object
org.apache.commons.math.distribution.AbstractDistribution
org.apache.commons.math.distribution.AbstractIntegerDistribution
org.apache.commons.math.distribution.PascalDistributionImpl
- All Implemented Interfaces:
Serializable
,DiscreteDistribution
,Distribution
,IntegerDistribution
,PascalDistribution
public class PascalDistributionImpl
extends AbstractIntegerDistribution
implements PascalDistribution, Serializable
The default implementation of
PascalDistribution
.- Since:
- 1.2
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionPascalDistributionImpl
(int r, double p) Create a Pascal distribution with the given number of trials and probability of success. -
Method Summary
Modifier and TypeMethodDescriptiondouble
cumulativeProbability
(int x) For this distribution, X, this method returns P(X ≤ x).int
Access the number of successes for this distribution.double
Returns the mean.double
Returns the variance.double
Access the probability of success for this distribution.int
Returns the lower bound of the support for the distribution.int
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
setNumberOfSuccesses
(int successes) 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
equals, 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
-
Constructor Details
-
PascalDistributionImpl
public PascalDistributionImpl(int r, double p) Create a Pascal distribution with the given number of trials and probability of success.- Parameters:
r
- the number of successesp
- the probability of success
-
-
Method Details
-
getNumberOfSuccesses
public int getNumberOfSuccesses()Access the number of successes for this distribution.- Specified by:
getNumberOfSuccesses
in interfacePascalDistribution
- Returns:
- the number of successes
-
getProbabilityOfSuccess
public double getProbabilityOfSuccess()Access the probability of success for this distribution.- Specified by:
getProbabilityOfSuccess
in interfacePascalDistribution
- Returns:
- the probability of success
-
setNumberOfSuccesses
Deprecated.as of 2.1 (class will become immutable in 3.0)Change the number of successes for this distribution.- Specified by:
setNumberOfSuccesses
in interfacePascalDistribution
- Parameters:
successes
- the new number of successes- Throws:
IllegalArgumentException
- ifsuccesses
is not positive.
-
setProbabilityOfSuccess
Deprecated.as of 2.1 (class will become immutable in 3.0)Change the probability of success for this distribution.- Specified by:
setProbabilityOfSuccess
in interfacePascalDistribution
- Parameters:
p
- the new probability of success- Throws:
IllegalArgumentException
- ifp
is not a valid probability.
-
cumulativeProbability
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
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) invalid input: '<'= p
- Throws:
MathException
- if the inverse cumulative probability can not be computed due to convergence or other numerical errors.IllegalArgumentException
- if p invalid input: '<' 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 parameters.- 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 always positive infinity no matter the parameters. Positive infinity is represented byInteger.MAX_VALUE
together withAbstractIntegerDistribution.isSupportUpperBoundInclusive()
beingfalse
- Returns:
- upper bound of the support (always
Integer.MAX_VALUE
for positive infinity) - Since:
- 2.2
-
getNumericalMean
public double getNumericalMean()Returns the mean. For number of successesr
and probability of successp
, the mean is( r * p ) / ( 1 - p )
- Returns:
- the mean
- Since:
- 2.2
-
getNumericalVariance
public double getNumericalVariance()Returns the variance. For number of successesr
and probability of successp
, the mean is( r * p ) / ( 1 - p )^2
- Returns:
- the variance
- Since:
- 2.2
-