Class UniversalGenerator

  • All Implemented Interfaces:
    RandomNumberGenerator

    public class UniversalGenerator
    extends java.lang.Object
    implements RandomNumberGenerator
    The so called "Universal Generator" based on multiplicative congruential method, which originally appeared in "Toward a Universal Random Number Generator" by Marsaglia, Zaman and Tsang. It was later modified by F. James in "A Review of Pseudo-random Number Generators". It passes ALL of the tests for random number generators and has a period of 2144. It is completely portable (gives bit identical results on all machines with at least 24-bit mantissas in the floating point representation).
    Author:
    Haifeng Li
    • Constructor Summary

      Constructors 
      Constructor Description
      UniversalGenerator()
      Initialize Random with default seed.
      UniversalGenerator​(int seed)
      Initialize Random with a specified integer seed
      UniversalGenerator​(long seed)
      Initialize Random with a specified long seed
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int next​(int numbits)
      Returns up to 32 random bits.
      double nextDouble()
      Returns the next pseudorandom, uniformly distributed double value between 0.0 and 1.0 from this random number generator's sequence.
      void nextDoubles​(double[] d)
      Returns a vector of pseudorandom, uniformly distributed double values between 0.0 and 1.0 from this random number generator's sequence.
      int nextInt()
      Returns the next pseudorandom, uniformly distributed int value from this random number generator's sequence.
      int nextInt​(int n)
      Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive), drawn from this random number generator's sequence.
      long nextLong()
      Returns the next pseudorandom, uniformly distributed long value from this random number generator's sequence.
      void setSeed​(long seed)
      Initialize the random generator with a seed.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • UniversalGenerator

        public UniversalGenerator()
        Initialize Random with default seed.
      • UniversalGenerator

        public UniversalGenerator​(int seed)
        Initialize Random with a specified integer seed
      • UniversalGenerator

        public UniversalGenerator​(long seed)
        Initialize Random with a specified long seed
    • Method Detail

      • nextDouble

        public double nextDouble()
        Description copied from interface: RandomNumberGenerator
        Returns the next pseudorandom, uniformly distributed double value between 0.0 and 1.0 from this random number generator's sequence.
        Specified by:
        nextDouble in interface RandomNumberGenerator
      • nextDoubles

        public void nextDoubles​(double[] d)
        Description copied from interface: RandomNumberGenerator
        Returns a vector of pseudorandom, uniformly distributed double values between 0.0 and 1.0 from this random number generator's sequence.
        Specified by:
        nextDoubles in interface RandomNumberGenerator
      • nextInt

        public int nextInt()
        Description copied from interface: RandomNumberGenerator
        Returns the next pseudorandom, uniformly distributed int value from this random number generator's sequence.
        Specified by:
        nextInt in interface RandomNumberGenerator
      • nextInt

        public int nextInt​(int n)
        Description copied from interface: RandomNumberGenerator
        Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive), drawn from this random number generator's sequence.
        Specified by:
        nextInt in interface RandomNumberGenerator
      • nextLong

        public long nextLong()
        Description copied from interface: RandomNumberGenerator
        Returns the next pseudorandom, uniformly distributed long value from this random number generator's sequence.
        Specified by:
        nextLong in interface RandomNumberGenerator