Class RndAdapter
- All Implemented Interfaces:
RndInt31
,RndInt32
,RndInt64
,Serializable
Designed to conserve as much random source entropy as possible.
Entropy is consumed first from MSB.
512 bits buffer is provided.
TODO: supporting java.util.random.RandomGenerator (JDK17 or later) and org.apache.commons.rng.UniformRandomProvider
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionRndAdapter
(RndInt31 rndSrc) Constructor.RndAdapter
(RndInt32 rndSrc) Constructor.RndAdapter
(RndInt64 rndSrc) Constructor.RndAdapter
(Random rndSrc) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected int
next
(int bits) Generates the next pseudorandom number.boolean
nextBit()
Return next random number as 1bit boolean.byte
nextByte()
Return next random number as 8bit byte.int
Return next random number as 31bit int from LSB without sign-bit.int
Return next random number as 32bit int with random sign-bit.long
Return next random number as 64bit long with random sign-bit.void
setSeed
(long seed) Seed change is not supported.
-
Constructor Details
-
RndAdapter
Constructor.- Parameters:
rndSrc
- random generator- Throws:
NullPointerException
- null argument
-
RndAdapter
Constructor.- Parameters:
rndSrc
- random generator- Throws:
NullPointerException
- null argument
-
RndAdapter
Constructor.- Parameters:
rndSrc
- random generator- Throws:
NullPointerException
- null argument
-
RndAdapter
Constructor.- Parameters:
rndSrc
- random generator- Throws:
NullPointerException
- null argument
-
-
Method Details
-
setSeed
Seed change is not supported.* However, it is allowed only during the initial constructor.
- Overrides:
setSeed
in classRandom
- Parameters:
seed
- not supported- Throws:
UnsupportedOperationException
- always
-
nextBit
public boolean nextBit()Return next random number as 1bit boolean.Unlike
Random.nextBoolean()
implement, any entropy from random source is not discarded.- Returns:
- random number
-
nextByte
public byte nextByte()Return next random number as 8bit byte.Unlike
Random.nextBytes(byte[])
implement, any entropy from random source is not discarded.- Returns:
- random number
-
nextInt31
public int nextInt31()Return next random number as 31bit int from LSB without sign-bit.Only positive or zero value returned.
* LCG implementations on CPU without 64-bit remainders often output only 31-bit random numbers.
Entropy obtained from random source is returned without entropy missing.
-
nextInt32
public int nextInt32()Return next random number as 32bit int with random sign-bit.Entropy obtained from random source is returned without entropy missing.
-
nextInt64
public long nextInt64()Return next random number as 64bit long with random sign-bit.Entropy obtained from random source is returned without entropy missing.
-
next
protected int next(int bits)
-