|Navigate Language Fundamentals topic: )|
To generate random numbers the
Math.random method can be used, which returns a
double, greater than or equal to 0.0 and less than 1.0.
The following code returns a random integer between n and m (where n <= randomNumber < m):
|Code section 3.30: A random integer.
1 int randomNumber = n + (int)(Math.random * ( m - n ));
java.util.Random class provides methods for generating random
longs and 'Gaussians' (
doubles from a normal distribution with mean 0.0 and standard deviation 1.0). For example, the following code is equivalent to that above:
|Code section 3.31: A random integer with Gaussian.
1 Random random = new Random; 2 int randomNumber = n + random.nextInt(m - n);
As an example using random numbers, we can make a program that uses a Random object to simulate flipping a coin 20 times:
Of course, if you run the program you will probably get different results.
Math.random and the
Random class produce pseudorandom numbers. This is good enough for a lot of applications, but remember that it is not truly random. If you want a more secure random number generator, Java provides the
java.security.SecureRandom package. What happens with
Math.random and the
Random class is that a 'seed' is chosen from which the pseudorandom numbers are generated.
SecureRandom increases the security to ensure that the seed which is used by the pseudorandom number generator is non-deterministic — that is, you cannot simply put the machine in the same state to get the same set of results. Once you have created a
SecureRandom instance, you can use it in the same way as you can the
If you want truly random numbers, you can get a hardware random number generator or use a randomness generation service.
Manage research, learning and skills at NCR Works. Create an account using LinkedIn to manage and organize your omni-channel knowledge. NCR Works is like a shopping cart for information -- helping you to save, discuss and share.