본문 바로가기

프로그래밍./Java

[자바]Math.random() 랜덤함수 이해하기. / 간단예제


자바 Math.random() 랜덤함수 이해하기. / 간단예제
자바 프로그램을 배우면서
주사위 처럼 1~6 사이의 임의수를 발생시키는데 (Math.random()*6)+1 이런 문장을 보았습니다.

C에서나 제 생각으론 특정숫자가 나오면 %(나머지연산)을 해서 원하는 범위의 숫자를 구하는게 맞는데.
어떤 숫자든 6으로 나누어서 몫이 아닌 나머지만 취한다면. 0~5의 숫자가 나오기 마련이죠.

자기가 원하는 범위보다 하나 크게 % 연산을 해주면 됬었는데. 이건 곱하기가 나와서 좀 의아 했습니다.


알고 보니 위에서 보이듯, Math.random() 함수는 0~0.999999999999까지의 수를
임의로 발생 시키는 함수인거 같습니다. 0.xx가 나오기 때문에
곱하는 수를 넘지 못하죠. 위에서 처럼 6을 곱하면
0부터 5.xxx 까지 나올 수 있겠죠.

부터 숫자가 나오니까 +1을 해줌으로써
1부터 6까지의 수를 발생시킬 수 있는거죠.
소수점을 버리기 위해 (int)로 형 변환을 시켜주고요.

*가 오타가 아닌가 한참을 고민했었는데. 직접 값을 확인해보니 이해가 되네요 ㅎㅎ


도움이 되셨다면 아래의 손가락 버튼 한번 눌러주세요 ^^