public class Binomial extends AbstractDiscreteDistribution
p(x) = k * p^k * (1-p)^(n-k) with k = n! / (k! * (n-k)!).
Instance methods operate on a user supplied uniform random number generator; they are unsynchronized.
Implementation: High performance implementation. Acceptance Rejection/Inversion method. This is a port of RandBinomial used in CLHEP 1.4.0 (C++). CLHEP's implementation is, in turn, based on
V. Kachitvichyanukul, B.W. Schmeiser (1988): Binomial random variate generation, Communications of the ACM 31, 216-222.
Constructor and Description |
---|
Binomial(int n,
double p,
DoubleRandomEngine randomGenerator)
Constructs a binomial distribution.
|
Modifier and Type | Method and Description |
---|---|
double |
cdf(int k)
Returns the cumulative distribution function.
|
int |
nextInt()
Returns a random number from the distribution.
|
int |
nextInt(int n,
double p)
Returns a random number from the distribution with the given parameters n
and p; bypasses the internal state.
|
double |
pdf(int k)
Returns the probability distribution function.
|
void |
setNandP(int n,
double p)
Sets the parameters number of trials and the probability of success.
|
static int |
staticNextInt(int n,
double p)
Returns a random number from the distribution with the given parameters n
and p.
|
String |
toString()
Returns a String representation of the receiver.
|
nextDouble
apply, apply, clone, makeDefaultGenerator
public Binomial(int n, double p, DoubleRandomEngine randomGenerator)
n
- the number of trials (also known as sample size).p
- the probability of success.randomGenerator
- a uniform random number generator.IllegalArgumentException
- if n*Math.min(p,1-p) <= 0.0public double cdf(int k)
public int nextInt()
nextInt
in class AbstractDiscreteDistribution
public int nextInt(int n, double p)
n
- the number of trialsp
- the probability of success.IllegalArgumentException
- if n*Math.min(p,1-p) <= 0.0public double pdf(int k)
public void setNandP(int n, double p)
n
- the number of trialsp
- the probability of success.IllegalArgumentException
- if n*Math.min(p,1-p) <= 0.0public static int staticNextInt(int n, double p)
n
- the number of trialsp
- the probability of success.IllegalArgumentException
- if n*Math.min(p,1-p) <= 0.0Jump to the Parallel Colt Homepage