Package org.uncommons.maths.random
Class CellularAutomatonRNG
java.lang.Object
java.util.Random
org.uncommons.maths.random.CellularAutomatonRNG
- All Implemented Interfaces:
Serializable
,RandomGenerator
,RepeatableRNG
Java port of the cellular automaton pseudorandom number generator developed by Tony Pasqualoni.
NOTE: Instances of this class do not use the seeding mechanism inherited
from Random
. Calls to the Random.setSeed(long)
method will have no
effect. Instead the seed must be set by a constructor.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface java.util.random.RandomGenerator
RandomGenerator.ArbitrarilyJumpableGenerator, RandomGenerator.JumpableGenerator, RandomGenerator.LeapableGenerator, RandomGenerator.SplittableGenerator, RandomGenerator.StreamableGenerator
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a new RNG and seeds it using the default seeding strategy.CellularAutomatonRNG
(byte[] seed) Creates an RNG and seeds it with the specified seed data.CellularAutomatonRNG
(SeedGenerator seedGenerator) Seed the RNG using the provided seed generation strategy. -
Method Summary
Methods inherited from class java.util.Random
doubles, doubles, doubles, doubles, ints, ints, ints, ints, longs, longs, longs, longs, nextBoolean, nextBytes, nextDouble, nextFloat, nextGaussian, nextInt, nextInt, nextLong, setSeed
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.util.random.RandomGenerator
isDeprecated, nextDouble, nextDouble, nextExponential, nextFloat, nextFloat, nextGaussian, nextInt, nextLong, nextLong
-
Constructor Details
-
CellularAutomatonRNG
public CellularAutomatonRNG()Creates a new RNG and seeds it using the default seeding strategy. -
CellularAutomatonRNG
Seed the RNG using the provided seed generation strategy.- Parameters:
seedGenerator
- The seed generation strategy that will provide the seed value for this RNG.- Throws:
SeedException
- If there is a problem generating a seed.
-
CellularAutomatonRNG
public CellularAutomatonRNG(byte[] seed) Creates an RNG and seeds it with the specified seed data.- Parameters:
seed
- The seed data used to initialise the RNG.
-
-
Method Details
-
next
public int next(int bits) -
getSeed
public byte[] getSeed()- Specified by:
getSeed
in interfaceRepeatableRNG
- Returns:
- The seed data used to initialise this pseudo-random number generator.
-