오늘은 랜덤함수에 대해 간단히 알아보고자 합니다.
일반적으로 사용하는 랜덤함수는 부정확합니다. 완전히 랜던값을 보장하다고 할수도없구요.
C++ 11버전(?) 이후 부터 사용할수잇는 방법이긴하지만 알아보도록하겠습니다.
하드웨어적인 방법을 이용한 진정한 랜덤함수
#include <random> // 추가해야하는 헤더파일
int main()
{
std::random_device rrandom;
cout << rrandom() << endl;
return 0;
}
실행화면
3295284912
특정 범위내의 랜덤함수
#include <random> // 추가해야하는 헤더파일
int main()
{
std::random_device rrandom;
mt19937_64 rand(rrandom());// 랜덤함수로 시디 값을 넣어준다.
uniform_int_distribution<__int64> dist(0, 65555); // 0부터 65555까지의 값을 가진다.
cout << " dist()의 최소,최대 = "<< dist.min() << ", "<< dist.max() << endl;
count << dist(rrandom) << endl;
return 0;
}
실행화면
dist()의 최소,최대 = 0, 65555
32141
'C & C++' 카테고리의 다른 글
float 연산에서 주의사항 (0) | 2014.12.19 |
---|