RandomGenerator.SplittableGenerator
public
static
interface
RandomGenerator.SplittableGenerator
implements
RandomGenerator.StreamableGenerator
java.util.random.RandomGenerator.SplittableGenerator
|
Known indirect subclasses
SplittableRandom |
A generator of uniform pseudorandom values (with period 264)
applicable for use in (among other contexts) isolated parallel
computations that may generate subtasks.
|
|
This interface is designed to provide a common protocol for objects that
generate sequences of pseudorandom values and can be split into
two objects (the original one and a new one) each of which obey that same
protocol (and therefore can be recursively split indefinitely).
Ideally, all SplittableGenerator
objects produced by
recursive splitting from a single original SplittableGenerator
object are statistically independent of one another and individually
uniform. Therefore we would expect the set of values collectively
generated by a set of such objects to have the same statistical
properties as if the same quantity of values were generated by a single
thread using a single SplittableGenerator
object. In practice,
one must settle for some approximation to independence and uniformity.
Methods are provided to perform a single splitting operation and also
to produce a stream of generators split off from the original (by either
iterative or recursive splitting, or a combination).
Objects that implement SplittableGenerator
are typically not
cryptographically secure. Consider instead using SecureRandom
to
get a cryptographically secure pseudo-random number generator for use by
security-sensitive applications.
Summary
Public methods |
static
RandomGenerator.SplittableGenerator
|
of(String name)
Returns an instance of SplittableGenerator that utilizes the
name algorithm.
|
default
Stream<RandomGenerator>
|
rngs(long streamSize)
Returns a stream producing the given streamSize number of new
pseudorandom number generators, each of which implements the
RandomGenerator interface.
|
default
Stream<RandomGenerator>
|
rngs()
Returns an effectively unlimited stream of new pseudorandom number
generators, each of which implements the RandomGenerator
interface.
|
abstract
RandomGenerator.SplittableGenerator
|
split(RandomGenerator.SplittableGenerator source)
Returns a new pseudorandom number generator, split off from this one,
that implements the RandomGenerator and
SplittableGenerator interfaces.
|
abstract
RandomGenerator.SplittableGenerator
|
split()
Returns a new pseudorandom number generator, split off from this one,
that implements the RandomGenerator and
SplittableGenerator interfaces.
|
default
Stream<RandomGenerator.SplittableGenerator>
|
splits()
Returns an effectively unlimited stream of new pseudorandom number
generators, each of which implements the SplittableGenerator
interface.
|
abstract
Stream<RandomGenerator.SplittableGenerator>
|
splits(long streamSize, RandomGenerator.SplittableGenerator source)
Returns a stream producing the given streamSize number of new
pseudorandom number generators, each of which implements the
SplittableGenerator interface.
|
abstract
Stream<RandomGenerator.SplittableGenerator>
|
splits(long streamSize)
Returns a stream producing the given streamSize number of new
pseudorandom number generators, each of which implements the
SplittableGenerator interface.
|
abstract
Stream<RandomGenerator.SplittableGenerator>
|
splits(RandomGenerator.SplittableGenerator source)
Returns an effectively unlimited stream of new pseudorandom number
generators, each of which implements the SplittableGenerator
interface.
|
Inherited methods |
From interface
java.util.random.RandomGenerator.StreamableGenerator
|
From interface
java.util.random.RandomGenerator
default
DoubleStream
|
doubles(long streamSize, double randomNumberOrigin, double randomNumberBound)
Returns a stream producing the given streamSize number of
pseudorandomly chosen double values, where each value is
between the specified origin (inclusive) and the specified bound
(exclusive).
|
default
DoubleStream
|
doubles(long streamSize)
Returns a stream producing the given streamSize number of
pseudorandomly chosen double values.
|
default
DoubleStream
|
doubles()
Returns an effectively unlimited stream of pseudorandomly chosen
double values.
|
default
DoubleStream
|
doubles(double randomNumberOrigin, double randomNumberBound)
Returns an effectively unlimited stream of pseudorandomly chosen
double values, where each value is between the specified origin
(inclusive) and the specified bound (exclusive).
|
static
RandomGenerator
|
getDefault()
Returns a RandomGenerator meeting the minimal requirement
of having an algorithm
whose state bits are greater than or equal 64.
|
default
IntStream
|
ints(long streamSize)
Returns a stream producing the given streamSize number of
pseudorandomly chosen int values.
|
default
IntStream
|
ints(int randomNumberOrigin, int randomNumberBound)
Returns an effectively unlimited stream of pseudorandomly chosen
int values, where each value is between the specified origin
(inclusive) and the specified bound (exclusive).
|
default
IntStream
|
ints()
Returns an effectively unlimited stream of pseudorandomly chosen
int values.
|
default
IntStream
|
ints(long streamSize, int randomNumberOrigin, int randomNumberBound)
Returns a stream producing the given streamSize number of
pseudorandomly chosen int values, where each value is between
the specified origin (inclusive) and the specified bound (exclusive).
|
default
boolean
|
isDeprecated()
Return true if the implementation of RandomGenerator (algorithm) has been
marked for deprecation.
|
default
LongStream
|
longs(long streamSize)
Returns a stream producing the given streamSize number of
pseudorandomly chosen long values.
|
default
LongStream
|
longs()
Returns an effectively unlimited stream of pseudorandomly chosen
long values.
|
default
LongStream
|
longs(long randomNumberOrigin, long randomNumberBound)
Returns an effectively unlimited stream of pseudorandomly chosen
long values, where each value is between the specified origin
(inclusive) and the specified bound (exclusive).
|
default
LongStream
|
longs(long streamSize, long randomNumberOrigin, long randomNumberBound)
Returns a stream producing the given streamSize number of
pseudorandomly chosen long values, where each value is between
the specified origin (inclusive) and the specified bound (exclusive).
|
default
boolean
|
nextBoolean()
Returns a pseudorandomly chosen boolean value.
|
default
void
|
nextBytes(byte[] bytes)
Fills a user-supplied byte array with generated byte values
pseudorandomly chosen uniformly from the range of values between -128
(inclusive) and 127 (inclusive).
|
default
double
|
nextDouble()
Returns a pseudorandom double value between zero (inclusive) and
one (exclusive).
|
default
double
|
nextDouble(double bound)
Returns a pseudorandomly chosen double value between zero
(inclusive) and the specified bound (exclusive).
|
default
double
|
nextDouble(double origin, double bound)
Returns a pseudorandomly chosen double value between the
specified origin (inclusive) and the specified bound (exclusive).
|
default
double
|
nextExponential()
Returns a nonnegative double value pseudorandomly chosen from
an exponential distribution whose mean is 1.
|
default
float
|
nextFloat(float origin, float bound)
Returns a pseudorandomly chosen float value between the
specified origin (inclusive) and the specified bound (exclusive).
|
default
float
|
nextFloat()
Returns a pseudorandom float value between zero (inclusive) and
one (exclusive).
|
default
float
|
nextFloat(float bound)
Returns a pseudorandomly chosen float value between zero
(inclusive) and the specified bound (exclusive).
|
default
double
|
nextGaussian(double mean, double stddev)
Returns a double value pseudorandomly chosen from a Gaussian
(normal) distribution with a mean and standard deviation specified by the
arguments.
|
default
double
|
nextGaussian()
Returns a double value pseudorandomly chosen from a Gaussian
(normal) distribution whose mean is 0 and whose standard deviation is 1.
|
default
int
|
nextInt(int origin, int bound)
Returns a pseudorandomly chosen int value between the specified
origin (inclusive) and the specified bound (exclusive).
|
default
int
|
nextInt()
Returns a pseudorandomly chosen int value.
|
default
int
|
nextInt(int bound)
Returns a pseudorandomly chosen int value between zero
(inclusive) and the specified bound (exclusive).
|
default
long
|
nextLong(long origin, long bound)
Returns a pseudorandomly chosen long value between the
specified origin (inclusive) and the specified bound (exclusive).
|
default
long
|
nextLong(long bound)
Returns a pseudorandomly chosen long value between zero
(inclusive) and the specified bound (exclusive).
|
abstract
long
|
nextLong()
Returns a pseudorandomly chosen long value.
|
static
RandomGenerator
|
of(String name)
Returns an instance of RandomGenerator that utilizes the
name algorithm.
|
|
Public methods
rngs
public Stream<RandomGenerator> rngs (long streamSize)
Returns a stream producing the given streamSize
number of new
pseudorandom number generators, each of which implements the
RandomGenerator
interface. Ideally the generators in the
stream will appear to be statistically independent.
Implementation Requirements:
- The default implementation calls
splits
(streamSize).
Parameters |
streamSize |
long : the number of generators to generate |
rngs
public Stream<RandomGenerator> rngs ()
Returns an effectively unlimited stream of new pseudorandom number
generators, each of which implements the RandomGenerator
interface. Ideally the generators in the stream will appear to be
statistically independent.
Implementation Requirements:
- The default implementation calls
splits
().
splits
public Stream<RandomGenerator.SplittableGenerator> splits ()
Returns an effectively unlimited stream of new pseudorandom number
generators, each of which implements the SplittableGenerator
interface.
This pseudorandom number generator may be used as a source of
pseudorandom bits used to initialize the state the new ones.
Implementation Requirements:
splits
public abstract Stream<RandomGenerator.SplittableGenerator> splits (long streamSize)
Returns a stream producing the given streamSize
number of new
pseudorandom number generators, each of which implements the
SplittableGenerator
interface.
This pseudorandom number generator may be used as a source of
pseudorandom bits used to initialize the state the new ones.
Parameters |
streamSize |
long : the number of values to generate |