Random.NextInt 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
오버로드
NextInt() |
이 난수 생성기의 시퀀스에서 균일하게 분산된 |
NextInt(Int32) |
이 난수 생성기 시퀀스에서 가져온 0(포함)과 지정된 값(배타적) 사이에 균일하게 분산 |
NextInt()
이 난수 생성기의 시퀀스에서 균일하게 분산된 int
다음 의사 값을 반환합니다.
[Android.Runtime.Register("nextInt", "()I", "GetNextIntHandler")]
public virtual int NextInt ();
[<Android.Runtime.Register("nextInt", "()I", "GetNextIntHandler")>]
abstract member NextInt : unit -> int
override this.NextInt : unit -> int
반환
이 난수 생성기의 시퀀스에서 균일하게 분산된 int
다음 의사 난수 값
- 특성
설명
이 난수 생성기의 시퀀스에서 균일하게 분산된 int
다음 의사 값을 반환합니다. 일반적인 계약은 nextInt
하나의 int
값이 의사로 생성되어 반환된다는 것입니다. 모든 2<sup>32</sup> 가능한 int
값은 (대략) 같은 확률로 생성됩니다.
메서드 nextInt
는 클래스 Random
에 의해 다음과 같이 구현됩니다.
{@code
public int nextInt() {
return next(32);
}}
에 대한 java.util.Random.nextInt()
Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.
적용 대상
NextInt(Int32)
이 난수 생성기 시퀀스에서 가져온 0(포함)과 지정된 값(배타적) 사이에 균일하게 분산 int
된 의사 값을 반환합니다.
[Android.Runtime.Register("nextInt", "(I)I", "GetNextInt_IHandler")]
public virtual int NextInt (int bound);
[<Android.Runtime.Register("nextInt", "(I)I", "GetNextInt_IHandler")>]
abstract member NextInt : int -> int
override this.NextInt : int -> int
매개 변수
- bound
- Int32
상한(배타적)입니다. 양수여야 합니다.
반환
이 난수 생성기의 시퀀스에서 0(포함)과 bound
(배타적) 사이에 균일하게 분산된 int
다음 의사 난수 값
- 특성
설명
이 난수 생성기 시퀀스에서 가져온 0(포함)과 지정된 값(배타적) 사이에 균일하게 분산 int
된 의사 값을 반환합니다. 일반적인 계약은 nextInt
지정된 범위의 한 int
값이 의사로 생성되어 반환된다는 것입니다. 가능한 int
모든 bound
값은 (대략) 같은 확률로 생성됩니다. 메서드 nextInt(int bound)
는 클래스 Random
에 의해 다음과 같이 구현됩니다.
{@code
public int nextInt(int bound) {
if (bound <= 0)
throw new IllegalArgumentException("bound must be positive");
if ((bound & -bound) == bound) // i.e., bound is a power of 2
return (int)((bound * (long)next(31)) >> 31);
int bits, val;
do {
bits = next(31);
val = bits % bound;
} while (bits - val + (bound-1) < 0);
return val;
}}
다음 메서드는 독립적으로 선택된 비트의 약 편견 없는 소스이기 때문에 헤지 "대략"은 앞에서 설명에서만 사용됩니다. 임의로 선택한 비트의 완벽한 소스인 경우 표시된 알고리즘은 완벽한 균일성을 사용하여 명시된 범위에서 값을 선택합니다 int
.
알고리즘은 약간 까다롭습니다. 2^31이 n으로 나눌 수 없기 때문에 고르지 않은 분포를 초래하는 값을 거부합니다. 거부되는 값의 확률은 n에 따라 달라집니다. 최악의 경우는 n=2^30+1이며, 거부 확률은 1/2이고 루프가 종료되기 전에 예상되는 반복 횟수는 2입니다.
이 알고리즘은 n이 특별히 두 개의 힘인 경우를 처리합니다. 기본 의사 난수 생성기에서 올바른 수의 높은 순서 비트를 반환합니다. 특별한 처리가 없으면 올바른 수의 낮은 순서 비트가 반환됩니다. 이 클래스에서 구현하는 것과 같은 선형 동시 의사 난수 생성기는 낮은 순서 비트의 값 시퀀스에서 짧은 기간을 갖는 것으로 알려져 있습니다. 따라서 이 특수한 경우 n이 2의 작은 힘인 경우 이 메서드에 대한 연속 호출에 의해 반환되는 값 시퀀스의 길이가 크게 증가합니다.
1.2에 추가되었습니다.
에 대한 java.util.Random.nextInt(int)
Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.