std:: uniform_real_distribution
|
헤더에 정의됨
<random>
|
||
|
template
<
class
RealType
=
double
>
class uniform_real_distribution ; |
(C++11부터) | |
균일하게 분포된 난수 부동 소수점 값을 생성합니다. x , 이는 구간 [a, b) 에서 균일하게 분포됩니다. 즉, 다음 확률 밀도 함수에 따라 분포됩니다:
-
P(x|a,b) =
.1 b − a
std::uniform_real_distribution
는
RandomNumberDistribution
의 모든 요구 사항을 충족합니다.
목차 |
템플릿 매개변수
| RealType | - | 생성기에 의해 생성되는 결과 타입. 이것이 float , double , 또는 long double 중 하나가 아닌 경우의 효과는 정의되지 않습니다. |
멤버 타입
| 멤버 타입 | 정의 |
result_type
(C++11)
|
RealType |
param_type
(C++11)
|
매개변수 집합의 타입, RandomNumberDistribution 참조. |
멤버 함수
|
(C++11)
|
새로운 분포를 생성함
(public member function) |
|
(C++11)
|
분포의 내부 상태를 재설정함
(public member function) |
생성 |
|
|
(C++11)
|
분포에서 다음 난수를 생성함
(public member function) |
특성 |
|
|
(C++11)
|
분포 매개변수를 반환함
(public member function) |
|
(C++11)
|
분포 매개변수 객체를 가져오거나 설정함
(public member function) |
|
(C++11)
|
잠재적으로 생성될 수 있는 최소값을 반환함
(public member function) |
|
(C++11)
|
잠재적으로 생성될 수 있는 최대값을 반환함
(public member function) |
비멤버 함수
|
(C++11)
(C++11)
(removed in C++20)
|
두 분포 객체를 비교함
(함수) |
|
(C++11)
|
의사 난수 분포에 대한 스트림 입출력을 수행함
(함수 템플릿) |
참고 사항
이 분포로부터 닫힌 구간 [a, b] 에 대한 분포를 생성하는 것은 어렵습니다. std:: nextafter ( b, std:: numeric_limits < RealType > :: max ( ) ) 를 두 번째 매개변수로 사용하는 것은 반올림 오류 때문에 항상 작동하지 않습니다.
대부분의 기존 구현에는 가끔씩
b
를 반환할 수 있는 버그가 존재합니다
(
GCC #63176
LLVM #18767
MSVC STL #1074
). 원래는
RealType
이
float
이고
LWG issue 2524
가 존재할 때만 발생하는 것으로 생각되었지만, 이후 연구에서
버그를 발생시키기 위해 둘 중 어느 것도 필요하지 않음
이 입증되었습니다.
예제
1과 2 사이의 임의의 숫자 10개를 출력합니다.
#include <iostream> #include <random> int main() { std::random_device rd; // Will be used to obtain a seed for the random number engine std::mt19937 gen(rd()); // Standard mersenne_twister_engine seeded with rd() std::uniform_real_distribution<> dis(1.0, 2.0); for (int n = 0; n < 10; ++n) // Use dis to transform the random unsigned int generated by gen into a // double in [1, 2). Each call to dis(gen) generates a new random double. std::cout << dis(gen) << ' '; std::cout << '\n'; }
가능한 출력:
1.80829 1.15391 1.18483 1.38969 1.36094 1.0648 1.97798 1.27984 1.68261 1.57326
외부 링크
| 구간에서 무작위 부동소수점 수 추출하기 — © 2022. Frédéric Goualard, 낭트 대학교. |