Java Reference
In-Depth Information
Nevertheless, the sequences of random numbers that are generated by Java
have been shown to have properties that truly random sequences of numbers
would have. They are “random enough” for people to use them with confidence
in their programs.
5.6.1
Method Math.random
Static function Math.random() can be used to generate a sequence of random
numbers. Whenever a new number is needed, call Math.random() again. It will
give you a different random number each time.
This function produces a double result d (say) in the range 0≤d<1 .
Suppose we want random values in the range 1..52 —for example, they
might be numbers of cards in a deck of cards. Thus, we need to convert a dou-
ble number d in the range 0≤d<1 into a value k in the range 1≤k≤52 . We
show how to do this. Start with:
0≤d<1
Multiply all three values by 52 :
0≤52*d<52
Cast the middle value to an int —this truncates toward 0:
0≤( int )(52 * d) < 52
Since the middle value is an integer, we have:
0≤( int )(52 * d) ≤ 51
Add 1 to each value:
1≤1+( int )(52*d) ≤ 52
So, we create and store in k a random integer in the range 1..52 using the assign-
ment:
k= 1 + ( int ) (52*Math.random());
In the same way, the statements below store random numbers in the range
1..6 in two variables die1 and die2 , thus simulating the roll of a pair of dice:
die1= 1 + ( int ) (6*Math.random());
die2= 1 + ( int ) (6*Math.random());
5.6.2
Class Random
To gain more control over the generation of random numbers than is given by
Math.random , use the methods of class Random , in package java.util . First,
create an instance of class Random , using one of its two constructors:
 
Search WWH ::




Custom Search