자바 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)로 형 변환을 시켜주고요.
*가 오타가 아닌가 한참을 고민했었는데. 직접 값을 확인해보니 이해가 되네요 ㅎㅎ
도움이 되셨다면 아래의 손가락 버튼 한번 눌러주세요 ^^
'프로그래밍. > Java' 카테고리의 다른 글
[자바] for each문 사용법. (0) | 2011.04.11 |
---|---|
[자바] 배열 선언 방법 (0) | 2011.04.11 |
[자바]next() 와 nextLine() 함수의 차이. (2) | 2011.04.06 |
Eclipse 자바 파일 생성하기 / 자바 프로젝트 만들기. (0) | 2011.03.31 |
[자바] 자바패스 설정 / java path 설정. (window7 포함) (0) | 2011.03.23 |