质量较高的随机数一般采用梅森旋转算法(MT),通过该算法生成(0,1)上均匀分布的随机数,然后通过一系列变换,生成需要的各种分布的随机数
下面是生成(0,1)上均分分布的随机数的代码
#include <random>
#include <iostream>
int main()
{
std::random_device rd;//梅森旋转伪随机数生成器
std::mt19937 gen(rd());//均匀分布的伪随机数生成器
std::uniform_real_distribution<double> uniform_dist(0.0, 1.0);
double a = uniform_dist(gen);
double b = uniform_dist(gen);
std::cout << "a = " << a << ", b = " << b << std::endl;
return 0;
}