이론
선형 합동법보다 우수한 난수의 품질과 속도를 인정받아 C++11 부터는 mt19937 이 표준으로 채택
C++11 부터는 아래와 같은 코드로 메르센 트위스터를 이용한 난수생성이 가능하다.
메르센 트위스터는 발생시키는 난수의 비트 수에 따라 MT19937, MT19937-64로 나뉨.
코드
#include <iostream>
#include <random>
int main(void)
{
std::random_device random; //하드웨어 리소스를 기반으로 난수를 생성
std::mt19937 engine(random()); //메르센 트위스터 방식으로 난수를 생성하겠다는 선언
std::uniform_int_distribution<int> distribution(0, 100); //난수의 범위와 자료형 정의. rand() % 100과는 다르게 100도 나올 수 있음
auto generated = distribution(engine);
std::cout << generated << std::endl;
}