public class InverseTransformDiscreteSampler extends SamplerBase implements DiscreteSampler
Example:
import org.apache.commons.math3.distribution.IntegerDistribution;
import org.apache.commons.math3.distribution.BinomialDistribution;
import org.apache.commons.rng.simple.RandomSource;
import org.apache.commons.rng.sampling.distribution.DiscreteSampler;
import org.apache.commons.rng.sampling.distribution.InverseTransformDiscreteSampler;
import org.apache.commons.rng.sampling.distribution.DiscreteInverseCumulativeProbabilityFunction;
// Distribution to sample.
final IntegerDistribution dist = new BinomialDistribution(11, 0.56);
// Create the sampler.
final DiscreteSampler binomialSampler =
new InverseTransformDiscreteSampler(RandomSource.create(RandomSource.MT),
new DiscreteInverseCumulativeProbabilityFunction() {
public int inverseCumulativeProbability(double p) {
return dist.inverseCumulativeProbability(p);
}
});
// Generate random deviate.
int random = binomialSampler.sample();
Constructor and Description |
---|
InverseTransformDiscreteSampler(UniformRandomProvider rng,
DiscreteInverseCumulativeProbabilityFunction function)
|
Modifier and Type | Method and Description |
---|---|
int |
sample()
Creates a sample.
|
String
|
toString()
|
nextDouble,
nextInt,
nextInt
public InverseTransformDiscreteSampler(UniformRandomProvider rng, DiscreteInverseCumulativeProbabilityFunction function)
rng
- Generator of uniformly distributed
random numbers.
function
- Inverse cumulative probability
function.
public int sample()
sample
in interface DiscreteSampler
public String toString()
toString
in class SamplerBase
Copyright © 2016 The Apache Software Foundation. All rights reserved.