강의

멘토링

커뮤니티

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

now2406님의 프로필 이미지
now2406

작성한 질문수

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

5.9 난수 만들기 random numbers

각 클래스?들이 하는 것들을 제가 제대로 이해했는지 궁금합니다!

작성

·

239

2

std::random_device rd;

std::mt19937 mersenne(rd());

std::uniform_int_distribution<> dice(1, 6);

random_device는 시드를 만드는거고, mt19937은 시드를 주면 32비트로 표현할 수 있는 랜덤한 양수를 만드는 것, 각 클래스들에 대해 이렇게 이해했는데 맞는지 궁금합니다.

그리고 마지막 uniform_in_distribution 대해서 약간 아리송한데 uniform_int_distribution은 메르센 트위스터로 만든 난수를 내부 알고리즘을 이용하여 변환해서 균일분포로 나오게 다듬는건가요??

답변 1

2

홍정모님의 프로필 이미지
홍정모
지식공유자

기능상으로는 그렇게 볼 수 있는데요, 내부적으로 어떻게 작동하는 지 더 자세하 알고 싶으시다면 따로 공부하셔야할 것 같습니다. pseudo random number의 개념에 대해서는 앞에서 나왔었고 mersenne twiter에 대해서 더 자세한 내용은 아래 링크 참고하세요.참고로, '분포'에 맞춰서 난수를 생성하는 것이 그렇게 간단한 일이 아니라서 수학분야에서 많은 분들이 연구를 해오셨습니다.

https://en.wikipedia.org/wiki/Mersenne_Twister

now2406님의 프로필 이미지
now2406

작성한 질문수

질문하기