我希望使用Boost生成超过10 ^ 8个随机数。它们必须正态分布,标准偏差为1,平均值为0.这是我的MWE:
#include <iostream>
#include <vector>
#include <time.h>
#include <boost/random/normal_distribution.hpp>
#include <boost/random/mersenne_twister.hpp>
#include <boost/random/variate_generator.hpp>
using namespace std;
int main()
{
typedef boost::mt19937 ENG;
typedef boost::normal_distribution<double> DIST;
typedef boost::variate_generator<ENG,DIST> GEN;
ENG eng;
DIST dist(0,1);
GEN gen(eng,dist);
gen.engine().seed(time(0));
vector<double> nums;
for(int i=0; i<500; i++)
{
nums.push_back(gen());
}
return 0;
}
我在这方面有两个问题:
编辑请注意,代码中没有瓶颈。我只是想知道从专业的角度来看我的方法是否正确
我应该说这些数字(所有这些数字)必须通过适当的常数进行缩放。我的计划是为此使用for循环。
最佳, 奈尔斯。