public abstract class FloatRandomEngine extends PersistentObject implements FloatFunction, IntFunction
Most probability distributions are obtained by using a uniform pseudo-random number generation engine followed by a transformation to the desired distribution. Thus, subclasses of this class are at the core of computational statistics, simulations, Monte Carlo methods, etc.
Subclasses produce uniformly distributed int's and long's in the closed intervals [Integer.MIN_VALUE,Integer.MAX_VALUE] and [Long.MIN_VALUE,Long.MAX_VALUE], respectively, as well as float's and float's in the open unit intervals (0.0f,1.0f) and (0.0,1.0), respectively.
Subclasses need to override one single method only: nextInt(). All other methods generating different data types or ranges are usually layered upon nextInt(). long's are formed by concatenating two 32 bit int's. float's are formed by dividing the interval [0.0f,1.0f] into 232 sub intervals, then randomly choosing one subinterval. float's are formed by dividing the interval [0.0,1.0] into 264 sub intervals, then randomly choosing one subinterval.
Note that this implementation is not synchronized.
FloatMersenneTwister
,
MersenneTwister64
,
Random
,
Serialized FormModifier and Type | Method and Description |
---|---|
float |
apply(float dummy)
Equivalent to raw().
|
int |
apply(int dummy)
Equivalent to nextInt().
|
static FloatRandomEngine |
makeDefault()
Constructs and returns a new uniform random number engine seeded with the
current time.
|
float |
nextFloat()
Returns a 32 bit uniformly distributed random number in the open unit
interval
(0.0f,1.0f) (excluding 0.0f and 1.0f). |
abstract int |
nextInt()
Returns a 32 bit uniformly distributed random number in the closed
interval [Integer.MIN_VALUE,Integer.MAX_VALUE] (including
Integer.MIN_VALUE and Integer.MAX_VALUE);
|
long |
nextLong()
Returns a 64 bit uniformly distributed random number in the closed
interval [Long.MIN_VALUE,Long.MAX_VALUE] (including
Long.MIN_VALUE and Long.MAX_VALUE).
|
float |
raw()
Returns a 32 bit uniformly distributed random number in the open unit
interval
(0.0,1.0) (excluding 0.0 and 1.0). |
clone
public float apply(float dummy)
apply
in interface FloatFunction
dummy
- argument passed to the function.public int apply(int dummy)
apply
in interface IntFunction
dummy
- argument passed to the function.public static FloatRandomEngine makeDefault()
FloatMersenneTwister
.public float nextFloat()
(0.0f,1.0f)
(excluding 0.0f and 1.0f).public abstract int nextInt()
public long nextLong()
public float raw()
(0.0,1.0)
(excluding 0.0 and 1.0).Jump to the Parallel Colt Homepage