[자바] Random() 클래스, Math.random() 메소드
먼저 Random클래스를 살펴보자. 범위를 설정하면 범위 안의 난수를 뽑아내는 클래스이다.
활용 예제는 아래와 같다.
import java.util.Random;
public class Random2 {
public static void main(String[] args) {
Random ran = new Random();
int num1 = ran.nextInt(100);
double num2 = ran.nextDouble();
System.out.println(num1);
System.out.println(num2);
}
}
이 클래스는 java.util 패키지에 속해있다. 따라서 import java.util.Random; 와 같이 import 선언을 해주어야한다.
그리고 Random클래스를 활용하기 위한 객체를 생성(Random ran = new Random();) 해야한다.
int num = ran.nextInt(100); 는 0이상 100미만의 난수를 발생시켜 num1이라는 변수에 넣어줌을 의미하고
double num2 = ran.nextDouble(); 은 0이상1이하의 실수인 난수를 발생시켜 num2에 넣어준 것이다.
19
0.0581622972070579
그 결과 위와 같이 출력되었다.
그럼 이제 Math.random() 메소드를 살펴보자.
Math클래스는 수학관련 함수를 제공해주는 클래스로 java.lang패키지에 속해있기 때문에 따로 import를 안해줘도 된다. 그리고 모든 필드와 메소드가 static으로 선언되어 있기 때문에 객체를 생성하여 접근하지 않아도 된다. 그리고 Math.random() 메소드는 0이상 1이하의 난수만 발생시킨다는 것에 주의해야한다. 아래 예를 보자.
public class Random2 {
public static void main(String[] args) {
double num = Math.random();
System.out.println(num);
}
}
num이라는 변수에 Math.random()을 통해 난수를 넣었다.
뽑은 결과는 아래와 같다.
0.5962121869771372
둘 중 어느 것을 쓸 것인지는 개인의 취향에 따라 선택하면 될 것이다.
필자라면 Math.random() 을 사용할 것 같다. 그 이유는 객체 생성이 필요없고 0부터1사이의 실수인 난수라고 해도 곱셈연산으로 충분이 정수인 난수를 뽑아낼 수 있기 때문이다.