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
Randomwith 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 intnext(int bits)Returns a pseudo-random uniformly distributedintvalue of the number of bits specified by the argumentbitsas described by Donald E.booleannextBoolean()Returns a pseudo-random uniformly distributedboolean.voidnextBytes(byte[] buf)Fillsbufwith random bytes.doublenextDouble()Returns a pseudo-random uniformly distributeddoublein the half-open range [0.0, 1.0).floatnextFloat()Returns a pseudo-random uniformly distributedfloatin the half-open range [0.0, 1.0).doublenextGaussian()Returns a pseudo-random (approximately) normally distributeddoublewith mean 0.0 and standard deviation 1.0.intnextInt()Returns a pseudo-random uniformly distributedint.intnextInt(int n)Returns a pseudo-random uniformly distributedintin the half-open range [0, n).longnextLong()Returns a pseudo-random uniformly distributedlong.voidsetSeed(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 givenseedas 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 distributedintvalue of the number of bits specified by the argumentbitsas 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)
Fillsbufwith random bytes.- Parameters:
buf- Buffer to fill.
-
nextDouble
public double nextDouble()
Returns a pseudo-random uniformly distributeddoublein the half-open range [0.0, 1.0).- Returns:
- Random value.
-
nextFloat
public float nextFloat()
Returns a pseudo-random uniformly distributedfloatin the half-open range [0.0, 1.0).- Returns:
- Random value.
-
nextGaussian
public double nextGaussian()
Returns a pseudo-random (approximately) normally distributeddoublewith 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 distributedintin 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.
-
-