균일 난수 비트 생성기는 가능한 결과 범위 내의 각 값이 (이상적으로) 동일한 확률을 가지도록 부호 없는 정수 값을 반환하는 함수 객체입니다.
균일 난수 비트 생성기는 난수 생성기로 사용하기 위한 것이 아닙니다: 이들은 (효율성을 위해 대량으로 생성되는) 난수 비트의 소스로 사용됩니다. 모든 균일 난수 비트 생성기는 어떤
난수 분포
에도 연결되어 난수(형식적으로는 난수 변량)를 얻을 수 있습니다.
|
목차
요구사항
타입
G
가 다음 조건을 만족하면
UniformRandomBitGenerator
를 만족합니다
|
주어진
g
, 타입
G
의 값에 대해, 다음 모든 조건이 충족됩니다:
-
G::result_type
이 유효하며, 부호 없는 정수 타입을 나타냅니다.
-
다음 표현식들이 유효해야 하며 지정된 효과를 가져야 합니다:
|
(C++20까지)
|
|
표현식
|
타입
|
요구사항
|
|
G
::
min
(
)
|
G::result_type
|
-
G
의
operator
(
)
가 반환할 수 있는 가장 작은 값을 산출합니다.
-
결과 값은
G
::
max
(
)
보다 엄격하게 작습니다.
-
표현식은 반드시 상수 표현식이어야 합니다.
|
|
G
::
max
(
)
|
G::result_type
|
-
G
의
operator
(
)
가 반환할 수 있는 가장 큰 값을 산출합니다.
-
결과 값은
G::min()
보다 엄격하게 큽니다.
-
표현식은 반드시 상수 표현식이어야 합니다.
|
|
g
(
)
|
G::result_type
|
-
닫힌 구간
[
G
::
min
(
)
,
G
::
max
(
)
]
내의 값을 반환합니다.
-
분할 상환 상수 복잡도를 가집니다.
|
|
다음의 모든 조건이 만족됩니다:
|
(C++20부터)
|
참고 사항
모든
RandomNumberEngine
s
는 이 요구사항을 충족합니다.
표준 라이브러리
다음 표준 라이브러리 기능들은 UniformRandomBitGenerator 유형을 요구합니다.
|
|
범위의 요소들을 무작위로 재정렬합니다 (함수 템플릿 & 알고리즘 함수 객체)
|
|
|
|
|
|
시퀀스에서 N개의 무작위 요소를 선택합니다 (함수 템플릿 & 알고리즘 함수 객체)
|
|
|
|
|
|
주어진 정밀도의 실수 값을 균등하게 분포시킵니다 [0, 1) (함수 템플릿)
|
|
|
범위에 걸쳐 균등하게 분포된 정수 값을 생성합니다 (클래스 템플릿)
|
|
|
범위에 걸쳐 균등하게 분포된 실수 값을 생성합니다 (클래스 템플릿)
|
| 모든 다른 난수 분포
|
다음 표준 라이브러리 기능들은 만족시킵니다 UniformRandomBitGenerator을(를) 추가로 만족시키지 않으면서 RandomNumberEngine:
|
|
하드웨어 엔트로피 소스를 사용하는 비결정적 난수 생성기 (클래스)
|
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
|
DR
|
적용 대상
|
게시된 동작
|
올바른 동작
|
LWG 2154
(
P0898R3
)
|
C++11
|
G
::
min
(
)
및
G
::
max
(
)
가 상수 표현식이어야 하는지 명확하지 않았음
[1]
|
필수
|
-
↑
이러한 표현식들의 시간 복잡도 요구사항은 C++20 이전에는 "컴파일 타임"이었습니다. 이 표현은 모호한데, "컴파일 타임 시간 복잡도"는 "컴파일 타임에 평가될 수 있다"와 "시간 복잡도가 컴파일 타임에 결정될 수 있다" 두 가지로 해석될 수 있기 때문입니다.
참고 항목
|
|
타입이 균일 난수 비트 생성자로 적합함을 명시함
(concept)
|
|