Generating Random Numbers
Problem
You need to generate random numbers in a hurry.
Solution
Use java.lang.Math.random( )
to generate random numbers. There is no
claim that the random values it returns are very
good random numbers, however. This code
exercises the random( )
method:
// Random1.java // java.lang.Math.random( ) is static, don't need to construct Math System.out.println("A random from java.lang.Math is " + Math.random( ));
Note that this method only generates double values. If you need integers, you need to scale and round:
/** Generate random ints by scaling from Math.random( ). * Prints a series of 100 random integers from 1 to 10, inclusive. */ public class RandomInt { public static void main(String[] a) { for (int i=0; i<100; i++) System.out.println(1+(int)(Math.random( ) * 10)); } }
See Also
Section 5.14 is an easier way to get random integers.
Also see the Javadoc documentation for
java.lang.Math
, and the warning in this
chapter’s Introduction about pseudo-randomness versus real
randomness.
Get Java Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.