'Math.random()'에 해당되는 글 1건


안녕하세요. 제임스 입니다. 


이번에는 자바 랜덤 함수에 대한 포스팅을 하고자 합니다. 

아니... 사실은 발행 버튼만 누르면 포스팅이 끝났는데... 뜬금없이 블루 스크린이 발생하면서... 날려 먹었습니다. 

그래서 다시 쓴 포스팅 입니다. ㅠㅠ


우선 시작전에 int 형 랜덤함수 조회 공식을 선 공개 하겠습니다. 

int intValue =  (int)( Math.random()*x ) + y;

여기서 x, y 는 물론 변수 입니다 :) 

이 두친구가 무엇을 하는 친구 들인지는 아래에서 정리 하겠습니다. 


■ Java Random Function (자바 랜덤 함수)


자바에서 제공하고 있는 랜덤함수를 사용하면 간단하게 랜덤 값을 반환 할 수 있습니다. 

바로 Math 클라스의 random() 이라는 함수 이야기 인데요. 

이친구가 바로 오늘의 주인공입니다. 

Math.random() 의 값은 double 형으로 0.0 과 1.0 보다 작은 수 (1.0 은 해당사항 없습니다) 사이의 값을 반환하게 됩니다. 



■ int 형의 랜덤 값 반환하기


일반적으로 랜덤하게 int 값을 뽑아 오는 작업을 많이 하는데요. 이때 이 double 로 반환된 값을 int 로 형변환 해주는 작업이 필요 합니다. 이를 위해 아래와 같이 코드를 작성해 봤습니다. 

int intValue = (int)( Math.random() );

0.0 보다 크거나 같고 1.0 보다 작은 값을 (최대 0.9999... 인 값) int 로 형변환 합니다. 

결과 값은 0 만 나오게 되어 있습니다. 

처음 시작할때 x, y 값이 있었는데요. 여기서는 그 값이 빠져 있습니다. 


이제 x, y 값에 대해 알아 보겠습니다. 



■ int 형의 랜덤 값 범위내의 숫자 갯수


우선 x 값이 무엇인지 부터 알아 보겠습니다. 


여기서 예제를 하나 더 보겠습니다. 

원하는 숫자의 범위가 0 ~ 9 까지 입니다. 총 10개의 숫자가 필요 하죠. 그렇다면 이 코드를 어떻게 짜면 될까요? 

int intValue = (int)( Math.random()*10 );

0.0 * 10 , 0.1 *10, .... , 0.99999999*10 을 한 결과는 0 ~ 9.999999.... 라는 double 형의 값이 반환됩니다. 

이를 int 로 형변환 하게 되면 0, 1, 2, .... , 8, 9 까지 결과 값이 10개가 나올 수 있습니다. 


즉, x 라는 값은 랜덤 숫자가 나올수 있는 범위내 존재 하는 숫자 갯수를 의미 한다고 볼수 있습니다. 



이번에는 0 부터 15 까지 원하는 값을 랜덤하게 가져오기 위해서는 아래와 같이 작성하면 됩니다. 

총 16개의 숫자가 필요 하므로 x 값을 16으로 셋팅 해주시면 됩니다. 

int intValue = (int)( Math.random()*16 );



■ int 형의 랜덤 값의 시작값 정의


이번에는 y 값에 대해 알아 보겠습니다. 


x 값에 대해 이야기 하면서 처음 예제가 0 ~ 9 까지였죠. 

이번에는 1 ~ 10 까지 값을 가져오고 싶습니다. 물론 시작 값이 1 이죠? 

그렇다면 y 값에 1을 넣어 주면 됩니다. 

int intValue = (int)( Math.random()*10 ) + 1;

반환되는 값은 1 ~ 10 까지 10개의 값중 하나가 리턴 됩니다. 


다른 예를 들어 보겠습니다. 

만약 3 ~ 12 까지 10개의 값을 원한다면 아래와 같이 작성 하면 됩니다. 

int intValue =  (int)( Math.random()*10 ) + 3;



■ 응용하기


먼저 언급한 x, y 값을 잘 사용하면 조금 다른 범주의 랜덤값들도 가져 올 수 있습니다. 


예를 들어 11, 12, 13 이 세개의 숫자만 랜덤하게 가져 오는 코드를 작성 한다면 어떻게 해야 할까요? 

우선 숫자 갯수가 3개 입니다. x 값은 3이겠죠? 

시작 숫자가 11 입니다. 그렇다면 y 값은 11입니다. 


그럼 코드 작성 해보겠습니다. 

int intValue =  (int)( Math.random()*3 ) + 11;



■ 내용 정리

1. 자바 랜덤은 Math.random() 함수를 사용합니다. 

2. int 형의 랜덤 값을 가져 오는 공식은 아래와 같습니다. 

int intValue =  (int)( Math.random()*x ) + y;

3. x 값은 랜덤 숫자가 나올 수 있는 범위내에 존재하는 숫자의 갯수를, y 값은 시작 값을 의미 합니다. 


위 세가지만 알면 자바에서 랜덤값은 쉬운 녀석입니다 :)



 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D



블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,