0
std::default_random_engine generator;
std::lognormal_distribution<double> distribution(0,8);
double number = distribution(generator);
cout<<number;

我需要在 C++ 中使用 lognormal_distribution 随机数。第一次运行程序时,我得到编号 = 4.92852e-05。但是第二次,第三次,......我也得到了同样的结果。所以当我多次运行程序时,我需要不同的结果。我需要做什么 ???

提前致谢。

4

1 回答 1

1

每次运行程序时都会得到相同的值,因为随机数生成器使用相同的种子。尝试:

#include <time.h>

std::default_random_engine generator;
generator.seed(time(0));
std::lognormal_distribution<double> distribution(0,8);
double number = distribution(generator);
std::cout<<number;

这应该使用当前时间为生成器播种。

于 2013-09-25T13:12:50.117 回答