강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

ᄋᄉᄋ.님의 프로필 이미지
ᄋᄉᄋ.

작성한 질문수

홍정모의 따라하며 배우는 C++

5.9 난수 만들기 random numbers

random_device와 mt19937의 차이

해결된 질문

작성

·

800

1

random_device와 mt19937의 차이를 정확하게 잘 이해가 안되서 그런데

random_device가 srand()처럼 seed값을 바꿔주고

mt19937이 rand()처럼 난수의 값을 반환? 하는 역할을 하는건가요?

 

답변 1

1

안녕하세요 :)

random_device도 난수를 발생시키고 mt19937도 난수를 발생시킵니다.

아래의 코드를 실행해보시면 random_device로도 난수가 발생하고 mt19937로도 난수를 발생시킨다는 걸 알 수 있습니다.

---

#include <iostream>
#include <random>
using namespace std;

int main()
{
	random_device rng;
	for (int i = 0; i < 10; i++)
		cout << rng() << endl;
}

---

#include <iostream>
#include <random>
using namespace std;


int main() 
{
	mt19937 mtRand;
	for (int i = 0; i < 10; i++) 
		cout << mtRand() << endl;
	
	return 0;

}

 

강의 속 예제에서는 random_device의 값을 마치 seed처럼 사용한 것입니다.

 

감사합니다

ᄋᄉᄋ.님의 프로필 이미지
ᄋᄉᄋ.

작성한 질문수

질문하기