본문 바로가기

Tech

몇가지 Random Number Generation 예제

C++에서 난수를 발생시키는 방법이 몇가지 있다.

 

1. standard c 의 srand, rand를 사용

2. OpenSSL을 사용

3. stdard c++ 의 random을 사용

 

위 세가지 방법의 예제는 다음과 같다.

 

1. srand와 rand 를 사용

 

if (type == STDLIB)		srand(time(NULL));

value = rand();

 

 

2. OpenSSL을 사용

 

if (type == OPENSSL)	RAND_status();

RAND_bytes((unsigned char *)&value, 4);

 

 

3. c++ random 을 사용

 

std::mt19937 engine(seed);

std::uniform_int_distribution<> dis(m_min, m_max);	// default MIN=0, MAX=2147483647
value = dis(engine);

 

 


좀더 많은 종류의 랜덤함수와 전체 코드를 보려면 GitHub를 참고하자.
완벽하지는 않으나 힌트를 얻기에는 충분할 것이다.

 

https://github.com/tebeknet/TestOpenSSL/blob/master/TestOpenSSL/CMyRand.cpp

 

 

실행된 화면은 다음과 같다.