인프런 커뮤니티 질문&답변
각 클래스?들이 하는 것들을 제가 제대로 이해했는지 궁금합니다!
작성
·
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에 대해서 더 자세한 내용은 아래 링크 참고하세요.참고로, '분포'에 맞춰서 난수를 생성하는 것이 그렇게 간단한 일이 아니라서 수학분야에서 많은 분들이 연구를 해오셨습니다.





