public abstract class AbstractRandomGenerator extends Object implements RandomGenerator
RandomGenerator interface.
 Default implementations for all methods other than nextDouble() and
 setSeed(long) are provided.
 
 All data generation methods are based on code nextDouble().
 Concrete implementations must override
 this method and should provide better / more
 performant implementations of the other methods if the underlying PRNG
 supplies them.
| Constructor and Description | 
|---|
| AbstractRandomGenerator()Construct a RandomGenerator. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | clear()Clears the cache used by the default implementation of
  nextGaussian(). | 
| boolean | nextBoolean()Returns the next pseudorandom, uniformly distributed
  booleanvalue from this random number generator's
 sequence. | 
| void | nextBytes(byte[] bytes)Generates random bytes and places them into a user-supplied
 byte array. | 
| abstract double | nextDouble()Returns the next pseudorandom, uniformly distributed
  doublevalue between0.0and1.0from this random number generator's sequence. | 
| float | nextFloat()Returns the next pseudorandom, uniformly distributed  floatvalue between0.0and1.0from this random
 number generator's sequence. | 
| double | nextGaussian()Returns the next pseudorandom, Gaussian ("normally") distributed
  doublevalue with mean0.0and standard
 deviation1.0from this random number generator's sequence. | 
| int | nextInt()Returns the next pseudorandom, uniformly distributed  intvalue from this random number generator's sequence. | 
| int | nextInt(int n)Returns a pseudorandom, uniformly distributed  intvalue
 between 0 (inclusive) and the specified value (exclusive), drawn from
 this random number generator's sequence. | 
| long | nextLong()Returns the next pseudorandom, uniformly distributed  longvalue from this random number generator's sequence. | 
| void | setSeed(int seed)Sets the seed of the underlying random number generator using an
  intseed. | 
| void | setSeed(int[] seed)Sets the seed of the underlying random number generator using an
  intarray seed. | 
| abstract void | setSeed(long seed)Sets the seed of the underlying random number generator using a
  longseed. | 
public AbstractRandomGenerator()
public void clear()
nextGaussian(). Implementations that do not override the
 default implementation of nextGaussian should call this
 method in the implementation of setSeed(long)public void setSeed(int seed)
int seed.
 Sequences of values generated starting with the same seeds should be identical.
setSeed in interface RandomGeneratorseed - the seed valuepublic void setSeed(int[] seed)
int array seed.
 Sequences of values generated starting with the same seeds should be identical.
setSeed in interface RandomGeneratorseed - the seed valuepublic abstract void setSeed(long seed)
long seed.  Sequences of values generated starting with the
 same seeds should be identical.
 
 Implementations that do not override the default implementation of
 nextGaussian should include a call to clear() in the
 implementation of this method.
setSeed in interface RandomGeneratorseed - the seed valuepublic void nextBytes(byte[] bytes)
 The default implementation fills the array with bytes extracted from
 random integers generated using nextInt().
nextBytes in interface RandomGeneratorbytes - the non-null byte array in which to put the
 random bytespublic int nextInt()
int
 value from this random number generator's sequence.
 All 232 possible int values
 should be produced with  (approximately) equal probability.
 The default implementation provided here returns
 (int) (nextDouble() * Integer.MAX_VALUE)
 nextInt in interface RandomGeneratorint
  value from this random number generator's sequencepublic int nextInt(int n)
int value
 between 0 (inclusive) and the specified value (exclusive), drawn from
 this random number generator's sequence.
 The default implementation returns
 (int) (nextDouble() * n
 nextInt in interface RandomGeneratorn - the bound on the random number to be returned.  Must be
 positive.int
 value between 0 (inclusive) and n (exclusive).NotStrictlyPositiveException - if n <= 0.public long nextLong()
long
 value from this random number generator's sequence.  All
 264 possible long values
 should be produced with (approximately) equal probability.
 The default implementation returns
 (long) (nextDouble() * Long.MAX_VALUE)
 nextLong in interface RandomGeneratorlong
value from this random number generator's sequencepublic boolean nextBoolean()
boolean value from this random number generator's
 sequence.
 The default implementation returns
 nextDouble() <= 0.5
 nextBoolean in interface RandomGeneratorboolean value from this random number generator's
 sequencepublic float nextFloat()
float
 value between 0.0 and 1.0 from this random
 number generator's sequence.
 The default implementation returns
 (float) nextDouble() 
 nextFloat in interface RandomGeneratorfloat
 value between 0.0 and 1.0 from this
 random number generator's sequencepublic abstract double nextDouble()
double value between 0.0 and
 1.0 from this random number generator's sequence.
 This method provides the underlying source of random data used by the other methods.
nextDouble in interface RandomGeneratordouble value between 0.0 and
  1.0 from this random number generator's sequencepublic double nextGaussian()
double value with mean 0.0 and standard
 deviation 1.0 from this random number generator's sequence.
 The default implementation uses the Polar Method due to G.E.P. Box, M.E. Muller and G. Marsaglia, as described in D. Knuth, The Art of Computer Programming, 3.4.1C.
 The algorithm generates a pair of independent random values.  One of
 these is cached for reuse, so the full algorithm is not executed on each
 activation.  Implementations that do not override this method should
 make sure to call clear() to clear the cached value in the
 implementation of setSeed(long).
nextGaussian in interface RandomGeneratordouble value with mean 0.0 and
 standard deviation 1.0 from this random number
  generator's sequenceCopyright © 2003–2016 The Apache Software Foundation. All rights reserved.