我想在C ++中生成N个独立的随机数集。
我尝试使用std::random
,但我只能通过声明多个default_random_engines来实现。它有效,但对我的情况来说还不够,因为我不知道我需要的独立集的数量。
这很重要,因为我需要知道每组随机生成的数字都服从所选的分布,我不能只对我的所有数字使用相同的函数。
答案 0 :(得分:3)
我会说你不需要多个随机引擎,你需要的是多个发行版。
类似
std::default_random_engine generator;
std::uniform_real_distribution<double> distributionA(0.0,1.0);
std::uniform_real_distribution<double> distributionB(-1.0,2.0);
std::uniform_real_distribution<double> distributionC(-7.0,0.5);
后来做了采样
double a = distributionA(generator);
double b = distributionB(generator);
double c = distributionC(generator);