1. 개요
이 사용방법(예제)에서는 범위 내에서 난수를 생성하는 다양한 방법을 탐색합니다.
2. 범위에서 난수 생성하기
2.1. Math.random
Math.random 은 0.0보다 크거나 같고 1.0보다 작은 랜덤의 double 값을 제공합니다 .
Math.random 메서드를 사용하여 주어진 범위 [min, max) 에서 난수를 생성해 보겠습니다 .
public int getRandomNumber(int min, int max) {
return (int) ((Math.random() * (max - min)) + min);
}
왜 효과가 있습니까? Math.random 이 가능한 가장 낮은 출력인 0.0을 반환 하면 어떻게 되는지 살펴보겠습니다 .
0.0 * (max - min) + min => min
따라서 얻을 수 있는 가장 낮은 숫자는 min 입니다.
1.0이 Math.random 의 배타적 상한 이므로 다음과 같이 됩니다.
1.0 * (max - min) + min => max - min + min => max
따라서 메서드 반환의 배타적 상한은 max 입니다.
다음 섹션에서는 Random#nextInt 를 사용 하여 동일한 패턴이 반복되는 것을 볼 수 있습니다.
2.2. java.util.Random.nextInt
또한 java.util.Random 의 인스턴스를 사용 하여 동일한 작업을 수행 할 수도 있습니다 .
난수를 얻기 위해 java.util.Random.nextInt 메소드를 사용합시다 :
public int getRandomNumberUsingNextInt(int min, int max) {
Random random = new Random();
return random.nextInt(max - min) + min;
}
분 상한 반면 파라미터 (원점)을 포함하다 맥스 배타적이다.
2.3. java.util.Random.ints
java.util.Random.ints의 방법은 반환 IntStream 랜덤의 정수를.
따라서 java.util.Random.ints 메소드를 활용하고 난수를 리턴할 수 있습니다.
public int getRandomNumberUsingInts(int min, int max) {
Random random = new Random();
return random.ints(min, max)
.findFirst()
.getAsInt();
}
여기에서도 지정된 원점 최소값 은 포함되고 최대값 은 제외됩니다.
3. 결론
이 기사에서 우리는 범위 내에서 난수를 생성하는 다른 방법을 보았습니다.
코드 스니펫은 언제나처럼 GitHub 에서 찾을 수 있습니다 .