난수(임의의 수)를 얻기 위해서는 Math클래스의 random()메서드를 사용한다 이 메서드는
0.0이상 1.0미만의 범위에 속하는 하나의 double값을 반환한다.
0.0 <= Math.random() < 1.0
만일 1 과 3 사이의 정수를 구하고 싶다면 다음과 같은 과정으로 난수를 구할 수 있다.
0.0 * 3 <= Math.random() * 3 < 1.0 * 3
0.0 <= Math.random() * 3 < 3.0
(int)0.0 <= (int)(Math.random() * 3) < (int)3.0
0 <= (int)(Math.random() * 3) < 3
0 + 1 <= (int)(Math.random() * 3) + 1 < 3 + 1
1 <= (int)(Math.random() * 3) + 1 < 4
자, 이제는 1과 3 사이의 정수중 하나를 얻을 수 있다. 1은 포함되고 4는 포함되지 않는다.
Math.random()에서는 최소 0 ~ 0.999... 를 얻을 수 있기에 내가 원하는 최소값 y를 정하고,
최대값은 x + y로 정한다면
y =< 랜덤정수 < x + y 혹은
y =< 랜덤정수 =< x + y - 1 의 값을 얻을 수 있다.
int random = (int)(Math.random() * (x + y)) + y;
아래 예제는 3이상 10이하의 정수만 반환될것이다.
int random = (int)(Math.random() * 8) + 3;