我创建了一个类,可以用作一个比标准rand()更好的随机数生成器。下面我包含了类的.cpp文件,其中包含类变量std::my 19937 gen和std::uniform_real_distribution distr。
我的问题是是否有必要创建数字生成器的多个实例。例如,如果我有A和B类,而且每个类都需要在0,1范围内采样随机数,那么如果A和B各有自己的UniformNumberGenerator实例,还是应该对两个类使用一个实例?
UniformNumberGenerator::UniformNumberGenerator(double min, double max)
{
gen = CreateGenerator();
distr = std::uniform_real_distribution<double>(min, max);
}
std::mt19937 UniformNumberGenerator::CreateGenerator()
{
std::random_device rd;
std::mt19937 result(rd());
return result;
}
//Take a sample
double UniformNumberGenerator::operator()()
{
return distr(gen);
}
发布于 2014-08-18 02:59:48
我不能根据您发布的代码来判断您的随机数生成器,但我可以说一些事情是基于哪种方法(实例化几个复制的生成器与具有单个全局生成器的),这是最好的:
希望这能帮上忙。
https://stackoverflow.com/questions/25360241
复制相似问题