Java - Random 클래스
Math.random() 말고 java.util 에서 Random 클래스 자체로 지원한다.
Random 클래스를 사용하면 다양한 랜덤 값을 구성할 수 있는 특징이 있다.
nextInt() - int 타입 랜덤
Random random = new Random();
int i = random.nextInt();
System.out.println("Random nextint: " + i);
Random nextint: -1534192221
int 형 타입의 랜덤 값이 출력한다.
int i = random.nextInt(100);
System.out.println("Random nextint: " + i);
Random nextint: 69
0~99 사이의 값을 출력한다.
int i = random.nextInt(100) + 1;
System.out.println("Random nextint: " + i);
Random nextint: 5
1~100 사이의 값을 출력한다.
nextDouble() - double 타입의 랜덤
double d = random.nextDouble();
System.out.println("Random nextdouble: " + d);
Random nextdouble: 0.24945386583375606
nextBoolean() - boolean 타입의 랜덤
boolean b = random.nextBoolean();
System.out.println("Random boolean: " + b);
Random boolean: false
true, false 둘 중 하나가 출력한다.
seed 값 따라 Random 결과 고정
시드 값이 주어지면 랜덤의 값이 여러 번 호출하여도 동일한 값을 출력한다.
Random random = new Random(1);
int i = random.nextInt();
System.out.println("Random nextint: " + i);
Random nextint: -1155869325
seed 값에 의해 여러 번 빌드하여도 동일 값을 출력. 항상 동일한 난수열을 순서대로 출력한다고 표현한다.
참고로 seed 활용한 예시로 마인크래프트 게임이 새로 시작하였을 때 무작위의 지형에서 시작한다. 또는 시드가 동일한 상태로 게임을 시작하면 언제나 같은 지형에서 시작한다.