Language/JAVA

[JAVA] Math.random 메소드

IT수정 2024. 9. 3. 20:05

Math.random 메소드는 0.0 <= ~ < 1.0 사이의 double 타입 난수를 리턴한다.

0.0 <= Math.random() < 1.0

 

주사위의 범위를 구해보자. 여기서 각 변에 6을 곱하면 0.0 <= ~ < 6.0 사이의 double 타입 난수를 얻게 된다.

(0.0 * 6) <= (Math.random() * 6) < (1.0 * 6)

 

그리고 각 변을 int 타입으로 강제 타입 변환하면 0 ~ 5 중에서 하나의 정수 난수를 얻게 된다.

(int) 0.0 <= (int)(Math.random() * 6) < (int) 6.0

 

마지막으로 각 변에 1을 더하면 비로소 1 ~ 6 중에서 하나의 정수 난수를 얻게 된다.

1 <= (int)(Math.random() * 6 + 1) < 7

 

그렇다면 start 부터 시작하는 n개의 정수 중에서 하나의 정수를 얻기 위한 코드는 다음과 같이 작성할 수 있다.

int num = (int)(Math.random() * n) + start;

 

로또 번호 (1, ··· , 45) 중 하나를 뽑기 위해서도 다음 코드를 사용할 수 있다.

int num = (int)(Math.random() * 45) + 1;

'Language > JAVA' 카테고리의 다른 글

[JAVA] for 문  (0) 2024.09.03
[JAVA] switch 문  (7) 2024.09.03
[JAVA] if 문  (2) 2024.09.03
[JAVA] 연산의 방향과 우선순위  (0) 2024.09.03
[JAVA] 삼항(조건) 연산자  (0) 2024.09.03