Class MarsagliaTsangWangDiscreteSampler.Binomial
- java.lang.Object
-
- org.apache.commons.rng.sampling.distribution.MarsagliaTsangWangDiscreteSampler.Binomial
-
- Enclosing class:
- MarsagliaTsangWangDiscreteSampler
public static final class MarsagliaTsangWangDiscreteSampler.Binomial extends Object
Create a sampler for the Binomial distribution.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static SharedStateDiscreteSampler
of(UniformRandomProvider rng, int trials, double probabilityOfSuccess)
Creates a sampler for the Binomial distribution.
-
-
-
Method Detail
-
of
public static SharedStateDiscreteSampler of(UniformRandomProvider rng, int trials, double probabilityOfSuccess)
Creates a sampler for the Binomial distribution.Any probability less than 2-31 will not be observed in samples.
Storage requirements depend on the tabulated probability values. Example storage requirements are listed below (in kB).
p trials 0.5 0.1 0.01 0.001 4 0.06 0.63 0.44 0.44 16 0.69 1.14 0.76 0.44 64 4.73 2.40 1.14 0.51 256 8.63 5.17 1.89 0.82 1024 31.12 9.45 3.34 0.89
The method requires that the Binomial distribution probability at
x=0
can be computed. This will fail when(1 - p)^trials == 0
which requirestrials
to be large and/orp
to be small. In this case an exception is raised.- Parameters:
rng
- Generator of uniformly distributed random numbers.trials
- Number of trials.probabilityOfSuccess
- Probability of success (p).- Returns:
- Sampler.
- Throws:
IllegalArgumentException
- iftrials < 0
ortrials >= 2^16
,p
is not in the range[0-1]
, or the probability distribution cannot be computed.
-
-