C++ named requirements: RandomNumberDistribution (since C++11)
RandomNumberDistribution 은 확률 밀도 함수 p(x) 또는 이산 확률 분포 P(x i ) 에 따라 난수를 반환하는 함수 객체입니다.
요구사항
타입
D
가 다음 조건을 만족하면
RandomNumberDistribution
을 충족합니다
-
D가 CopyConstructible 요구사항을 만족합니다 -
D가 CopyAssignable 요구사항을 만족합니다
주어진
-
T, D :: result_type 에 의해 명명된 타입 -
P, D :: param_type 에 의해 명명된 타입으로,
-
- CopyConstructible 요구사항을 충족함
- CopyAssignable 요구사항을 충족함
- EqualityComparable 요구사항을 충족함
-
분포 매개변수에 해당하는 인수를 받는
D의 각 생성자와 동일한 인수를 취하는 생성자를 가짐 -
분포의 매개변수를 반환하는
D의 모든 멤버 함수와 동일한 이름, 타입, 의미를 가진 멤버 함수를 가짐 - 멤버 typedef using distribution_type = D ; 를 선언함
-
d,D타입의 값 -
x와y, (const 가능성 있는)D타입의 값들 -
p, (const 가능성 있는)P타입의 값 -
g,g1,g2, UniformRandomBitGenerator 요구사항을 만족하는 타입의 lvalue들 -
os, std::basic_ostream 특수화의 lvalue -
is, std::basic_istream 특수화의 lvalue
다음 표현식들은 유효해야 하며 지정된 효과를 가져야 합니다
| 식(Expression) | 타입(Type) | 설명(Notes) | 복잡도(Complexity) |
|---|---|---|---|
D::result_type
|
T
|
산술 타입(arithmetic type) | 컴파일 시간(Compile-time) |
D::param_type
|
P
|
컴파일 시간(Compile-time) | |
D()
|
다른 기본 생성된
D
와 구별할 수 없는 분포를 생성합니다
|
상수(Constant) | |
D(p)
|
p
를 생성하는 데 사용된 값들로 직접 생성된
D
와 구별할 수 없는 분포를 생성합니다
|
p
의 생성과 동일
|
|
d.reset()
|
void
|
분포의 내부 상태를 재설정합니다.
d
에 대한 다음
operator()
호출은
reset()
이전에 생성된 어떤 엔진 값에도 의존하지 않습니다
|
상수(Constant) |
x.param()
|
P
|
D
(
p
)
.
param
(
)
==
p
와 같은
p
를 반환합니다
|
D(p)
보다 나쁘지 않음
|
d.param(p)
|
void
|
사후 조건: d. param ( ) == p |
D(p)
보다 나쁘지 않음
|
d(g)
|
T
|
동일한
g
로 이 호출을 연속적으로 수행하여 반환된 숫자 시퀀스는
d.param()
으로 매개변수화된 분포에 따라 무작위로 분포됩니다
|
g
호출의 분할 상환된 상수 횟수
|
d(g,p)
|
T
|
동일한
g
로 이 호출을 연속적으로 수행하여 반환된 숫자 시퀀스는
p
로 매개변수화된 분포에 따라 무작위로 분포됩니다
|
g
호출의 분할 상환된 상수 횟수
|
x.min()
|
T
|
x
의 현재 매개변수 값들에 의해 결정된,
x
의
operator()
가 잠재적으로 반환할 수 있는 값들의 최대 하한
|
상수(Constant) |
x.max()
|
T
|
x
의 현재 매개변수 값들에 의해 결정된,
x
의
operator()
가 잠재적으로 반환할 수 있는 값들의 최소 상한
|
상수(Constant) |
x == y
|
bool
|
동등 관계를 설정합니다.
x.
param
(
)
==
y.
param
(
)
이고
g1
==
g2
인 한,
x
(
g1
)
와
y
(
g2
)
의 반복적 호출로 생성될 미래의 무한 시퀀스 값들이 동일할 경우
true
를 반환합니다
|
상수(Constant) |
x != y
|
bool
|
!(x == y)
|
상수(Constant) |
os << x
|
os
타입에 대한 참조
|
분포 매개변수와 내부 상태의 텍스트 표현을
os
에 기록합니다.
os
의 서식 플래그와 채우기 문자는 변경되지 않습니다
|
|
is >> d
|
is
타입에 대한 참조
|
is
에서 읽은 데이터로 분포 매개변수와 내부 상태를 복원합니다.
is
의 서식 플래그는 변경되지 않습니다. 데이터는 동일한 로케일,
CharT
및
Traits
스트림 템플릿 매개변수를 가진 스트림을 사용하여 기록되어야 하며, 그렇지 않으면 동작이 정의되지 않습니다. 잘못된 입력이 발생하면
is.
setstate
(
std
::
ios
::
failbit
)
가 호출되어
std::ios_base::failure
를 throw할 수 있습니다. 이 경우
d
는 변경되지 않습니다
|
참고 사항
분포 객체의 매개변수는 영구적으로 변경될 수 있으며, 이는 d. param ( p ) 를 사용하거나, 단일 operator() 호출 기간 동안에만 적용되도록 d ( g,p ) 를 사용하여 변경할 수 있습니다.
분포의 const 멤버 함수 호출과 os << d 는 반복적인 d ( g ) 에 의해 생성되는 숫자 시퀀스에 영향을 주지 않습니다.
표준 라이브러리
다음 표준 라이브러리 구성 요소들은 RandomNumberDistribution 요구사항을 충족합니다
|
(C++11)
|
범위 내에서 균일하게 분포된 정수 값을 생성합니다
(클래스 템플릿) |
|
(C++11)
|
범위 전체에 걸쳐 균일하게 분포된 실수 값을 생성합니다
(클래스 템플릿) |
|
(C++11)
|
bool
값을
베르누이 분포
기반으로 생성합니다
(클래스) |
|
(C++11)
|
이항 분포
상의 정수 값을 생성합니다
(클래스 템플릿) |
|
(C++11)
|
음이항 분포
에서 정수 값을 생성합니다
(클래스 템플릿) |
|
(C++11)
|
기하 분포
상의 정수 값을 생성합니다
(클래스 템플릿) |
|
(C++11)
|
푸아송 분포
상의 정수 값을 생성합니다
(클래스 템플릿) |
|
(C++11)
|
지수 분포
상의 실수 값을 생성합니다
(클래스 템플릿) |
|
(C++11)
|
실수 값을
감마 분포
에 따라 생성함
(클래스 템플릿) |
|
(C++11)
|
실수 값을
Weibull 분포
상에서 생성함
(클래스 템플릿) |
|
(C++11)
|
극값 분포
상의 실수 값을 생성합니다
(클래스 템플릿) |
|
(C++11)
|
실수 값을 생성하며, 이 값들은
표준 정규 (가우시안) 분포
를 따릅니다
(클래스 템플릿) |
|
(C++11)
|
로그 정규 분포 상의 실수 값을 생성합니다
Lognormal distribution
(클래스 템플릿) |
|
(C++11)
|
카이제곱 분포
상의 실수 값을 생성합니다
(클래스 템플릿) |
|
(C++11)
|
코시 분포
상의 실수 값을 생성합니다
(클래스 템플릿) |
|
(C++11)
|
Fisher의 F-분포
상의 실수 값을 생성합니다
(클래스 템플릿) |
|
(C++11)
|
Student's t-분포
상의 실수 값을 생성합니다
(클래스 템플릿) |
|
(C++11)
|
이산 분포에서 정수 값을 생성함
(클래스 템플릿) |
|
(C++11)
|
상수 부분 구간에 분포된 실수 값을 생성합니다
(클래스 템플릿) |
|
(C++11)
|
정의된 서브인터벌에 분포된 실수 값을 생성함
(클래스 템플릿) |