我在 How to use boost normal distribution classes?
上找到了这个例子#include <boost/random.hpp>
#include <boost/random/normal_distribution.hpp>
int main() {
boost::mt19937 rng; // I don't seed it on purpouse (it's not relevant)
boost::normal_distribution<> nd(0.0, 1.0);
boost::variate_generator<boost::mt19937&,
boost::normal_distribution<> > var_nor(rng, nd);
int i = 0;
for (; i < 10; ++i) {
double d = var_nor();
std::cout << d << std::endl;
}
}
我想知道我在代码中添加了什么来每次生成不同的随机数。我在for循环中使用了名为generated d的数字,但是每次运行程序时我都会得到相同的数字。谢谢!!!!
答案 0 :(得分:0)
你为引擎播种。参见例如这个答案包含许多发行版:How do I use Boost Random
答案 1 :(得分:0)
我以这种方式解决了它似乎有效:
我添加了库:
#include<time.h>
并修改这个:
boost::mt19937 rng(time(0));
通过这种方式,我猜种子是计算机的时间。