std::default_random_engine generator;
std::lognormal_distribution<double> distribution(0,8);
double number = distribution(generator);
cout<<number;
我需要在C ++中使用lognormal_distribution随机输入一个数字。 我第一次运行程序时得到的数字= 4.92852e-05。 但第二次,第三次,......我也得到了同样的结果。所以当我多次运行程序时,我需要不同的结果。我需要做什么???
提前致谢。
答案 0 :(得分: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;
这应该使用当前时间为发生器播种。