Java

[Java] Math.random( )

콩스프 2022. 10. 24. 21:04
  • 자바에서 임의의 수를 뽑기 위해 사용하는 메소드
  • 0.0과 1.0 사이에 속하는 double 타입의 난수 하나를 리턴
  • 0.0은 범위에 포함되고 1.0은 포함되지 않음
0.0 <= Math.random() < 1.0

 

Q) 1 ~ 10까지 정수 중 하나의 정수를 얻으려면?

 

A) 

1. 각 변에 10을 곱해

0.0 * 10  <=  Math.random()*10  < 1.0 * 10
 (0.0)                             (10.0)

해당 범위에 속하는 하나의 double 타입의 값을 얻을 수 있음

 

 

2. 각 변을 int 타입으로 강제 타입 변환

(int) 0.0  <=  (int) (Math.random()*10)  <  (int) 10.0
   (0)           (0, 1, 2, 3, ..., 9)           (10)

해당 범위에 속하는 하나의 정수값을 얻을 수 있음

 

 

3. 각 변에 1을 더해

0 + 1  <=  (int) (Math.random()*10) + 1  <  10 + 1
 (1)           (1, 2, 3, ..., 10 )          (11)

1 ~ 10 까지 정수 중에서 하나의 정수를 얻을 수 있음

 

 

start 부터 시작하는 n개의 정수 중 임의의 정수 하나를 얻기위한 연산식

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