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