Package java.util
Class Random
- java.lang.Object
-
- java.util.Random
-
- All Implemented Interfaces:
Serializable
,Modified
public class Random extends Object implements Serializable, Modified
This class provides methods that return pseudo-random values.It is dangerous to seed
Random
with the current time because that value is more predictable to an attacker than the default seed.- See Also:
- Serialized Form
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected int
next(int bits)
Returns a pseudo-random uniformly distributedint
value of the number of bits specified by the argumentbits
as described by Donald E.boolean
nextBoolean()
Returns a pseudo-random uniformly distributedboolean
.void
nextBytes(byte[] buf)
Fillsbuf
with random bytes.double
nextDouble()
Returns a pseudo-random uniformly distributeddouble
in the half-open range [0.0, 1.0).float
nextFloat()
Returns a pseudo-random uniformly distributedfloat
in the half-open range [0.0, 1.0).double
nextGaussian()
Returns a pseudo-random (approximately) normally distributeddouble
with mean 0.0 and standard deviation 1.0.int
nextInt()
Returns a pseudo-random uniformly distributedint
.int
nextInt(int n)
Returns a pseudo-random uniformly distributedint
in the half-open range [0, n).long
nextLong()
Returns a pseudo-random uniformly distributedlong
.void
setSeed(long seed)
Modifies the seed using a linear congruential formula presented in The Art of Computer Programming, Volume 2, Section 3.2.1.
-
-
-
Constructor Detail
-
Random
public Random()
Constructs a random generator with an initial state that is unlikely to be duplicated by a subsequent instantiation.The initial state (that is, the seed) is partially based on the current time of day in milliseconds.
-
Random
public Random(long seed)
Construct a random generator with the givenseed
as the initial state. Equivalent toRandom r = new Random(); r.setSeed(seed);
.This constructor is mainly useful for predictability in tests. The default constructor is likely to provide better randomness.
- Parameters:
seed
- Seed value.
-
-
Method Detail
-
next
protected int next(int bits)
Returns a pseudo-random uniformly distributedint
value of the number of bits specified by the argumentbits
as described by Donald E. Knuth in The Art of Computer Programming, Volume 2: Seminumerical Algorithms, section 3.2.1.Most applications will want to use one of this class' convenience methods instead.
- Parameters:
bits
- Number of bits.- Returns:
- Random value.
-
nextBoolean
public boolean nextBoolean()
Returns a pseudo-random uniformly distributedboolean
.- Returns:
- Random value.
-
nextBytes
public void nextBytes(byte[] buf)
Fillsbuf
with random bytes.- Parameters:
buf
- Buffer to fill.
-
nextDouble
public double nextDouble()
Returns a pseudo-random uniformly distributeddouble
in the half-open range [0.0, 1.0).- Returns:
- Random value.
-
nextFloat
public float nextFloat()
Returns a pseudo-random uniformly distributedfloat
in the half-open range [0.0, 1.0).- Returns:
- Random value.
-
nextGaussian
public double nextGaussian()
Returns a pseudo-random (approximately) normally distributeddouble
with mean 0.0 and standard deviation 1.0. This method uses the polar method of G. E. P. Box, M. E. Muller, and G. Marsaglia, as described by Donald E. Knuth in The Art of Computer Programming, Volume 2: Seminumerical Algorithms, section 3.4.1, subsection C, algorithm P.- Returns:
- Random value.
-
nextInt
public int nextInt()
Returns a pseudo-random uniformly distributedint
.- Returns:
- Random value.
-
nextInt
public int nextInt(int n)
Returns a pseudo-random uniformly distributedint
in the half-open range [0, n).- Parameters:
n
- Upper limit.- Returns:
- Random value.
-
nextLong
public long nextLong()
Returns a pseudo-random uniformly distributedlong
.- Returns:
- Random value.
-
setSeed
public void setSeed(long seed)
Modifies the seed using a linear congruential formula presented in The Art of Computer Programming, Volume 2, Section 3.2.1.- Parameters:
seed
- Seed value.
-
-