1. 개요

이 사용방법(예제)에서는 범위 내에서 난수를 생성하는 다양한 방법을 탐색합니다.

2. 범위에서 난수 생성하기

2.1. Math.random

Math.random0.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 에서 찾을 수 있습니다  .

Junit footer banner