2017년 5월 14일 일요일

random function in java (java에서 random 함수 사용)


Java에서의 random 함수는 Math.random()과 java.util.Random이 있습니다.
Math.random()은 용법이 예전 basic이나 c언어의 random함수들과 비슷해서 많이 이용하게 됩니다. 0<=Math.random()<1 사이의 값을 리턴하게 됩니다.
그래서 범위의 random값을 꺼낼려면 함수를 좀 만들어야합니다.
여기에서는 getRandomWithSize, getRandomWithEnd 두게의 메소드를 만들었습니다.

getRandomWithSize(5,3) 는 5부터 시작하는 3개의 숫자에 대해서 random숫자를 생성해 냅니다. 결국 => {5,6,7} 이 됩니다.
getRandomWithEnd(5,7) 는 5부터 7(포함)사이의 숫자의 random을 생성하게 됩니다. => {5,6,7} 동일한 결과를 볼 수 있습니다.

참고 Math.random()은 seed는 설정 하지 못하지만, 테스트해보니 실행할때 마다 다른 결과를 만들어 냅니다. (Eclipse 재시작 시에도 실행 할때마다 다른값을 만들어 냅니다.)
seed가 필요하다면 java.util.Random 인자를 살펴보기 바랍니다.

소스
package testProject;

public class RandomTest {

 public static void main(String[] args) {
  randomtest();
 }
 public static int randomtest()
 {
  for(int i=0;i<50;i++){
   System.out.print(getRandomWithSize(5,3)+" ");
  }
  System.out.println(" ");
  for(int i=0;i<50;i++){
   System.out.print(getRandomWithEnd(5,7)+" ");
  }
  System.out.println(" ");
  return 0;
 }
 //  getRandomWithSize(0,3) => (0,1,2)
 //  getRandomWithSize(5,3) => (5,6,7)
 public static int getRandomWithSize(int start,int size)
 {
  return (int)(Math.random()*size)+start;
 }
 //  getRandomWithEnd(0,2) => (0,1,2)
 //  getRandomWithEnd(5,7) => (5,6,7)
 public static int getRandomWithEnd(int start,int end)
 {
  return (int)(Math.random()*(end-start+1))+start;
 }
}


결과
5 7 5 5 7 5 7 7 5 7 6 6 6 5 5 6 5 6 7 6 6 7 7 5 5 6 7 6 7 6 7 5 7 6 5 7 6 7 5 6 5 7 5 5 6 6 5 5 5 7  
5 6 6 6 5 6 6 6 5 5 7 7 6 7 6 7 7 6 6 6 5 7 5 6 6 7 5 5 6 6 5 5 6 5 7 6 7 7 7 5 5 5 7 5 5 7 6 5 7 7  




댓글 없음:

댓글 쓰기