1. 개요
이 자습서에서는 범위 내에서 난수를 생성하는 다양한 방법을 살펴 봅니다.
2. 범위에서 난수 생성
2.1. Math.random
인 Math.random는 임의주는 이중 보다 크거나 0.0보다 1.0 동일한 값.
Math.random 메서드를 사용하여 주어진 범위에서 난수를 생성 해 보겠습니다 .
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입니다.
Math.random 이 1.0을 반환 하면 가능한 가장 높은 출력이며 다음을 얻습니다.
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에서 찾을 수 있습니다.