| java.lang.Object org.apache.commons.math.random.AbstractRandomGenerator
All known Subclasses: org.apache.commons.math.random.TestRandomGenerator,
AbstractRandomGenerator | abstract public class AbstractRandomGenerator implements RandomGenerator(Code) | | Abstract class implementing the
RandomGenerator interface.
Default implementations for all methods other than
AbstractRandomGenerator.nextDouble() and
AbstractRandomGenerator.setSeed(long) are provided.
All data generation methods are based on nextDouble().
Concrete implementations must override
this method and should provide better / more
performant implementations of the other methods if the underlying PRNG
supplies them.
since: 1.1 version: $Revision: 209144 $ $Date: 2005-07-04 16:30:05 -0700 (Mon, 04 Jul 2005) $ |
Method Summary | |
public void | clear() Clears the cache used by the default implementation of
AbstractRandomGenerator.nextGaussian . | public boolean | nextBoolean() Returns the next pseudorandom, uniformly distributed
boolean value from this random number generator's
sequence. | public void | nextBytes(byte[] bytes) Generates random bytes and places them into a user-supplied
byte array. | abstract public double | nextDouble() Returns the next pseudorandom, uniformly distributed
double value between 0.0 and
1.0 from this random number generator's sequence. | public float | nextFloat() Returns the next pseudorandom, uniformly distributed float
value between 0.0 and 1.0 from this random
number generator's sequence. | public double | nextGaussian() Returns the next pseudorandom, Gaussian ("normally") distributed
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. | public int | nextInt() Returns the next pseudorandom, uniformly distributed int
value from this random number generator's sequence. | public 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. | public long | nextLong() Returns the next pseudorandom, uniformly distributed long
value from this random number generator's sequence. | abstract public void | setSeed(long seed) Sets the seed of the underyling random number generator using a
long seed. |
AbstractRandomGenerator | public AbstractRandomGenerator()(Code) | | Construct a RandomGenerator.
|
nextBoolean | public boolean nextBoolean()(Code) | | Returns the next pseudorandom, uniformly distributed
boolean value from this random number generator's
sequence.
The default implementation returns
nextDouble() <= 0.5
the next pseudorandom, uniformly distributedboolean value from this random number generator'ssequence |
nextBytes | public void nextBytes(byte[] bytes)(Code) | | Generates random bytes and places them into a user-supplied
byte array. The number of random bytes produced is equal to
the length of the byte array.
The default implementation fills the array with bytes extracted from
random integers generated using
AbstractRandomGenerator.nextInt .
Parameters: bytes - the non-null byte array in which to put the random bytes |
nextDouble | abstract public double nextDouble()(Code) | | Returns the next pseudorandom, uniformly distributed
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.
the next pseudorandom, uniformly distributed double value between 0.0 and1.0 from this random number generator's sequence |
nextFloat | public float nextFloat()(Code) | | Returns the next pseudorandom, uniformly distributed float
value between 0.0 and 1.0 from this random
number generator's sequence.
The default implementation returns
(float) nextDouble()
the next pseudorandom, uniformly distributed float value between 0.0 and 1.0 from thisrandom number generator's sequence |
nextGaussian | public double nextGaussian()(Code) | | Returns the next pseudorandom, Gaussian ("normally") distributed
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
AbstractRandomGenerator.clear to clear the cached value in the
implementation of
AbstractRandomGenerator.setSeed(long) .
the next pseudorandom, Gaussian ("normally") distributeddouble value with mean 0.0 andstandard deviation 1.0 from this random numbergenerator's sequence |
nextInt | public int nextInt()(Code) | | Returns the next pseudorandom, uniformly distributed 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)
the next pseudorandom, uniformly distributed int value from this random number generator's sequence |
nextInt | public int nextInt(int n)(Code) | | Returns a pseudorandom, uniformly distributed 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
Parameters: n - the bound on the random number to be returned. Must bepositive. a pseudorandom, uniformly distributed intvalue between 0 (inclusive) and n (exclusive). throws: IllegalArgumentException - if n is not positive. |
nextLong | public long nextLong()(Code) | | Returns the next pseudorandom, uniformly distributed 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)
the next pseudorandom, uniformly distributed long value from this random number generator's sequence |
setSeed | abstract public void setSeed(long seed)(Code) | | Sets the seed of the underyling random number generator using a
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
AbstractRandomGenerator.clear in the
implementation of this method.
Parameters: seed - the seed value |
|
|