gpt4 book ai didi

c++ - 当我编译和运行 C++ 时,随机生成器给出相同的结果

转载 作者:行者123 更新时间:2023-11-28 07:24:17 26 4
gpt4 key购买 nike

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

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

提前致谢。

最佳答案

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

#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;

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

关于c++ - 当我编译和运行 C++ 时,随机生成器给出相同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19005576/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com