Namespaces
Variants

C++ named requirements: RandomNumberDistribution (since C++11)

From cppreference.net
C++ named requirements

RandomNumberDistribution 확률 밀도 함수 p(x) 또는 이산 확률 분포 P(x i ) 에 따라 난수를 반환하는 함수 객체입니다.

요구사항

타입 D 가 다음 조건을 만족하면 RandomNumberDistribution 을 충족합니다

주어진

  • T , D :: result_type 에 의해 명명된 타입
  • P , D :: param_type 에 의해 명명된 타입으로,
  • CopyConstructible 요구사항을 충족함
  • CopyAssignable 요구사항을 충족함
  • EqualityComparable 요구사항을 충족함
  • 분포 매개변수에 해당하는 인수를 받는 D 의 각 생성자와 동일한 인수를 취하는 생성자를 가짐
  • 분포의 매개변수를 반환하는 D 의 모든 멤버 함수와 동일한 이름, 타입, 의미를 가진 멤버 함수를 가짐
  • 멤버 typedef using distribution_type = D ; 를 선언함

다음 표현식들은 유효해야 하며 지정된 효과를 가져야 합니다

식(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 요구사항을 충족합니다

범위 내에서 균일하게 분포된 정수 값을 생성합니다
(클래스 템플릿)
범위 전체에 걸쳐 균일하게 분포된 실수 값을 생성합니다
(클래스 템플릿)
bool 값을 베르누이 분포 기반으로 생성합니다
(클래스)
이항 분포 상의 정수 값을 생성합니다
(클래스 템플릿)
음이항 분포 에서 정수 값을 생성합니다
(클래스 템플릿)
기하 분포 상의 정수 값을 생성합니다
(클래스 템플릿)
푸아송 분포 상의 정수 값을 생성합니다
(클래스 템플릿)
지수 분포 상의 실수 값을 생성합니다
(클래스 템플릿)
실수 값을 감마 분포 에 따라 생성함
(클래스 템플릿)
실수 값을 Weibull 분포 상에서 생성함
(클래스 템플릿)
극값 분포 상의 실수 값을 생성합니다
(클래스 템플릿)
실수 값을 생성하며, 이 값들은 표준 정규 (가우시안) 분포 를 따릅니다
(클래스 템플릿)
로그 정규 분포 상의 실수 값을 생성합니다 Lognormal distribution
(클래스 템플릿)
카이제곱 분포 상의 실수 값을 생성합니다
(클래스 템플릿)
코시 분포 상의 실수 값을 생성합니다
(클래스 템플릿)
Fisher의 F-분포 상의 실수 값을 생성합니다
(클래스 템플릿)
Student's t-분포 상의 실수 값을 생성합니다
(클래스 템플릿)
이산 분포에서 정수 값을 생성함
(클래스 템플릿)
상수 부분 구간에 분포된 실수 값을 생성합니다
(클래스 템플릿)
정의된 서브인터벌에 분포된 실수 값을 생성함
(클래스 템플릿)