난수 생성
1
2
3
4
5
6
7
8
9
10
11
#include <random> // 랜덤 난수 생성등과 관련 된 라이브러리를 include
...
std::random_device rd; // 시드값을 얻기 위해 생성
std::mt19937 gen(rd()); // 난수 생성 엔진을 초기화
std::uniform_int_distribution<int> dis(0, 99); // 0부터 99사이의 난수 생성
int randomNumber = dis(gen); // 랜덤 난수 호출
...
random_device
를 사용하게 되면OS
단에서 제공하는 난수를 사용할 수 있다.- 장치의 주변 환경 (드라이버의 노이즈 등) 과 상호작용하며 만들어지기 때문에 의사난수 생성 방식보다는 속도는 느리다.
- 따라서 주로
std::mt19937 gen(random_device());
와 같이 난수 엔진을 초기화하는 방식으로 사용한다.std::mt19937
은<random>
라이브러리에서 제공하는 난수 생성 엔진 중 하나이다.
std::uniform_int_distribution<int> dis(min, max);
를 통해 난수를 생성 할 범위를 지정해준다.