c언에서 사용하던 랜덤은 무수히 많은 숫자가 적힌 테이블에 특정 조건에 의하여 값을 가져오는 방식으로 랜덤을 구현하였다. 그러다 보니 특정시간에는 비슷한 값이 나온다거나 하는 오류가 발생하였는데
c++11부터 사용가능 하다고 한다. c언어 스타일과 c++스타일을 탐구해보도록 하겠다.
// c-style
int main()
{
//난수생성기에 시간값을 집어넣는다.
srand((unsigned int)time(NULL));
// 0~9까지 출력 될 것이다.
std::cout << "rand value : " << rand() % 10 << std::endl;
return NULL;
}
// c++ style
int main()
{
// 시드값을 얻기 위한 random_device 생성
std::random_device rd;
std::mt19937_64 mt(rd()); // 난수 생성 엔진의 시드 초기화로 random device 값을 준다.
std::uniform_int_distribution<int> dist(0, 9); // 범위설정
for (int i = 0; i < 100; ++i)
return NULL;
}