Class InverseTransformSampling

  • All Implemented Interfaces:
    RandomNumberGenerator, Seedable
    Direct Known Subclasses:
    InverseTransformSamplingExpRNG, InverseTransformSamplingGammaRNG, RayleighRNG, WeibullRNG

    public class InverseTransformSampling
    extends Object
    implements RandomNumberGenerator
    Inverse transform sampling (also known as inversion sampling, the inverse probability integral transform, the inverse transformation method, Smirnov transform, golden rule, etc.) is a basic method for pseudo-random number sampling, i.e. for generating sample numbers at random from any probability distribution given its cumulative distribution function. This basic idea is this: to generate a random variable X with a cumulative distribution function F(x) for all x, we first sample u from the uniform distribution. Then, x = F-1(u) = Q(u). This method requires that F(x) has a continuous density function, hence, strictly increasing and its inverse well defined.
    See Also:
    • Constructor Detail

      • InverseTransformSampling

        public InverseTransformSampling​(ProbabilityDistribution distribution,
                                        RandomLongGenerator uniform)
        Construct a random number generator to sample from a distribution.
        Parameters:
        distribution - the distribution to sample from
        uniform - a uniform random number generator
      • InverseTransformSampling

        public InverseTransformSampling​(ProbabilityDistribution distribution)
        Construct a random number generator to sample from a distribution.
        Parameters:
        distribution - the distribution to sample from
    • Method Detail

      • seed

        public void seed​(long... seeds)
        Description copied from interface: Seedable
        Seed the random number/vector/scenario generator to produce repeatable experiments.
        Specified by:
        seed in interface Seedable
        Parameters:
        seeds - the seeds