java.io.Serializable
, org.apache.commons.math3.random.RandomGenerator
public class SplitMix64RandomGenerator
extends org.apache.commons.math3.random.AbstractRandomGenerator
implements java.io.Serializable
SplittableRandom
. Due to
the fixed increment constant and to different strategies in generating finite ranges, the methods of this generator
are usually faster than those of SplittableRandom
.
Note that this generator has a relatively short period (264) so it should not be used to generate very long sequences (the rule of thumb to have a period greater than the square of the length of the sequence you want to generate).
it.unimi.dsi.util
,
RandomGenerator
,
SplitMix64Random
,
Serialized FormConstructor | Description |
---|---|
SplitMix64RandomGenerator() |
Creates a new generator seeded using
Util.randomSeed() . |
SplitMix64RandomGenerator(long seed) |
Creates a new generator using a given seed.
|
Modifier and Type | Method | Description |
---|---|---|
static void |
main(java.lang.String[] arg) |
|
boolean |
nextBoolean() |
|
void |
nextBytes(byte[] bytes) |
|
double |
nextDouble() |
|
float |
nextFloat() |
|
int |
nextInt() |
|
int |
nextInt(int n) |
|
long |
nextLong() |
|
long |
nextLong(long n) |
Returns a pseudorandom uniformly distributed
long value
between 0 (inclusive) and the specified value (exclusive), drawn from
this random number generator's sequence. |
void |
setSeed(long seed) |
Sets the seed of this generator.
|
void |
setState(long state) |
Sets the state of this generator.
|
public SplitMix64RandomGenerator()
Util.randomSeed()
.public SplitMix64RandomGenerator(long seed)
seed
- a seed for the generator.public long nextLong()
nextLong
in interface org.apache.commons.math3.random.RandomGenerator
nextLong
in class org.apache.commons.math3.random.AbstractRandomGenerator
public int nextInt()
nextInt
in interface org.apache.commons.math3.random.RandomGenerator
nextInt
in class org.apache.commons.math3.random.AbstractRandomGenerator
public int nextInt(int n)
nextInt
in interface org.apache.commons.math3.random.RandomGenerator
nextInt
in class org.apache.commons.math3.random.AbstractRandomGenerator
public long nextLong(long n)
long
value
between 0 (inclusive) and the specified value (exclusive), drawn from
this random number generator's sequence. The algorithm used to generate
the value guarantees that the result is uniform, provided that the
sequence of 64-bit values produced by this generator is.n
- the positive bound on the random number to be returned.long
value between 0
(inclusive) and n
(exclusive).public double nextDouble()
nextDouble
in interface org.apache.commons.math3.random.RandomGenerator
nextDouble
in class org.apache.commons.math3.random.AbstractRandomGenerator
public float nextFloat()
nextFloat
in interface org.apache.commons.math3.random.RandomGenerator
nextFloat
in class org.apache.commons.math3.random.AbstractRandomGenerator
public boolean nextBoolean()
nextBoolean
in interface org.apache.commons.math3.random.RandomGenerator
nextBoolean
in class org.apache.commons.math3.random.AbstractRandomGenerator
public void nextBytes(byte[] bytes)
nextBytes
in interface org.apache.commons.math3.random.RandomGenerator
nextBytes
in class org.apache.commons.math3.random.AbstractRandomGenerator
public void setSeed(long seed)
The seed will be passed through HashCommon.murmurHash3(long)
.
setSeed
in interface org.apache.commons.math3.random.RandomGenerator
setSeed
in class org.apache.commons.math3.random.AbstractRandomGenerator
seed
- a seed for this generator.public void setState(long state)
state
- the new state for this generator (must be nonzero).public static void main(java.lang.String[] arg)