오늘은 랜덤함수에 대해 간단히 알아보고자 합니다.


일반적으로 사용하는 랜덤함수는 부정확합니다. 완전히 랜던값을 보장하다고 할수도없구요.


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

+ Recent posts