public class MTRandom extends Random

| Constructor and Description |
|---|
MTRandom()
The default constructor for an instance of MTRandom.
|
MTRandom(boolean compatible)
This version of the constructor can be used to implement identical
behaviour to the original C code version of this algorithm including
exactly replicating the case where the seed value had not been set prior
to calling genrand_int32.
|
MTRandom(byte[] buf)
This version of the constructor initialises the class with the given byte
array.
|
MTRandom(int[] buf)
This version of the constructor initialises the class with the given
integer array.
|
MTRandom(long seed)
This version of the constructor simply initialises the class with the
given 64 bit seed value.
|
| Modifier and Type | Method and Description |
|---|---|
protected int |
next(int bits)
This method forms the basis for generating a pseudo random number
sequence from this class.
|
static int[] |
pack(byte[] buf)
This simply utility method can be used in cases where a byte array of
seed data is to be used to repeatedly re-seed the random number sequence.
|
void |
setSeed(byte[] buf)
This method resets the state of this instance using the byte array of
seed data provided.
|
void |
setSeed(int[] buf)
This method resets the state of this instance using the integer array of
seed data provided.
|
void |
setSeed(long seed)
This method resets the state of this instance using the 64 bits of seed
data provided.
|
public MTRandom()
public MTRandom(boolean compatible)
compatible - Compatibility flag for replicating original behaviour.public MTRandom(long seed)
seed - The seed value with which to initialise this class.public MTRandom(byte[] buf)
buf - The non-empty byte array of seed information.NullPointerException - if the buffer is null.IllegalArgumentException - if the buffer has zero length.public MTRandom(int[] buf)
buf - The non-empty integer array of seed information.NullPointerException - if the buffer is null.IllegalArgumentException - if the buffer has zero length.public final void setSeed(long seed)
public final void setSeed(byte[] buf)
buf - The non-empty byte array of seed information.NullPointerException - if the buffer is null.IllegalArgumentException - if the buffer has zero length.public final void setSeed(int[] buf)
buf - The non-empty integer array of seed information.NullPointerException - if the buffer is null.IllegalArgumentException - if the buffer has zero length.protected final int next(int bits)
mt.setSeed(12345); int foo = mt.nextInt(16) + (mt.nextInt(16) << 16);will not give the same result as
mt.setSeed(12345); int foo = mt.nextInt(32);
public static int[] pack(byte[] buf)
byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 }
becomes
int[] { 0x04030201, 0x00000605 }
Note that this method will not complain if the given byte array is empty
and will produce an empty integer array, but the setSeed() method will
throw an exception if the empty integer array is passed to it.buf - The non-null byte array to be packed.NullPointerException - if the given byte array is null.Copyright © 2014–2015. All rights reserved.