RandomGenerator — 난수 생성 공통 프로토콜

RandomGenerator — 난수 생성 공통 프로토콜

RandomGenerator 인터페이스는 난수 또는 (더 흔히) 의사 난수 시퀀스(숫자 또는 Boolean 값)를 생성하는 객체들의 공통 프로토콜을 제공하기 위해 설계됐어요. 시퀀스는 단일 값을 반복 호출하거나, 의사 난수 스트림을 반환하는 메서드를 호출해 얻을 수 있어요.

출처: Java API Reference

본문

public interface RandomGenerator

이상적으로는, 주어진 범위 값에 대해 각 값이 독립적이고 균등하게 선택돼야 해요. 실제로는 독립성과 균등성의 근사에 만족해야 할 수 있어요. int, long, boolean 값은 범위 명시가 없으면 타입의 모든 가능한 값을 포함해요. float/double은 항상 0.0(포함)~1.0(제외) 사이에서 균등하게 선택된 뒤, 명시된 범위가 있으면 계산적으로 스케일·변환돼요.

스트림을 반환하는 각 메서드는 단일 값을 반환하는 방식과 같은 방식으로 선택된 값들의 스트림을 만들어요. 예를 들어 r.ints(100)은 100개의 int 값 스트림을 반환하는데, 각 값은 같은 범위에서 유사한 의사 난수 방식으로 선택돼요.

팩토리

  • of(String name)name 알고리즘을 사용하는 RandomGenerator 인스턴스를 반환해요.
  • getDefault() — 상태 비트가 64 이상인 알고리즘의 최소 요구를 충족하는 RandomGenerator를 반환해요.

단일 값 메서드

nextInt() / nextInt(int bound) / nextInt(int origin, int bound), nextLong(...), nextFloat(...), nextDouble(...), nextBoolean(), nextBytes(byte[]), nextGaussian() / nextGaussian(mean, stddev), nextExponential() — 각 타입의 의사 난수를 반환해요. 기본 구현은 지정된 origin(포함)~bound(제외)를 따르며, nextBooleannextInt()의 상위 비트(부호 비트)를 검사해요.

스트림 메서드

ints(...), longs(...), doubles(...) — 크기를 지정하거나 무한 스트림으로, origin/bound 범위를 지정해 의사 난수 IntStream/LongStream/DoubleStream을 반환해요.

기타

isDeprecated() — 이 RandomGenerator(알고리즘) 구현이 deprecated로 표시됐는지 true를 반환해요.

더 알아보기 (Learn more)