본문 바로가기
Java/Java

[Java]주사위 랜덤 뽑기

by 전재경 2022. 11. 10.

Math.random() 함수

Math.random()함수를 이용해 뽑을 수 있다.

 

0.0은 범위에 포함되고 1.0은 포함되지 않는다. 이것을 비교연산자로 표현하면 아래와 같다.

0.0 <= Math.random() < 1.0

 

그렇다면 1~10 사이의 정수 중에서 하나의 정수를 얻기 위해 각 변에 10을 곱하면 다음과 같은 범위에 속한느 하나의

double 타입의 값을 얻을 수 있습니다.

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

 

이 상태에서 각 변을 int 타입으로 강제 타입 변환하면 다음과 같은 범위에 속하는 하나의 정수값을 얻을 수 있습니다.

 

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

 

이 상태에서 각 변을 1을 더하면 비로소 1~10 사이의 정수 중에서 하나의 정수를 얻게 된다.

 

0 + 1 <= (int) (Math.random() * 10 ) + 1 < 10 + 1

 

이와 같이 start부터 시작하는 n개의 정수 중에서 임의의 정수 하나를 얻기 위한 연산식을 다음과 같이 만들 수 있다.

 

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

이를 통해 주사위 번호 하나를 뽑기 위해서는 이런 연산식을 사용할 수 있다.

 

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

'Java > Java' 카테고리의 다른 글

[Java]for문 변형  (0) 2022.11.10
[Java]switch문  (0) 2022.11.10
[Java]Math.random()이란 ?  (0) 2022.11.10
[Java]toCharArray[]란 ?  (0) 2022.11.08
[Java]산술 연산자(+,-,*,/,%)  (0) 2022.11.08

댓글