gpt4 book ai didi

c++ - 随机双C++11

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:27:35 25 4
gpt4 key购买 nike

下面的代码展示了如何在 C++11 中随机加倍。每次在这个解决方案中,当我运行这个程序时,结果都是一样的——我不知道为什么?如何更改它以在每次运行程序时获得不同的解决方案?

#include <random>
int main(int argc, char **argv)
{
double lower_bound = 0.;
double upper_bound = 1.;
std::uniform_real_distribution<double> unif(lower_bound, upper_bound);
std::default_random_engine re;
double a_random_double = unif(re);
cout << a_random_double << endl;
return 0;
}
//compilation: "g++ -std=c++0x program_name.cpp -o program_name"

最佳答案

在生成样本之前,您需要为随机数生成器设置种子。在构造 default_random_engine 实例时执行此操作。例如:

std::random_device rd;
std::default_random_engine re(rd());

如果您希望对您使用的生成器有更多的规定,那么您应该指定一个而不是依赖于库实现者对 default_random_engine 的选择。此处列出了可用的选项:http://en.cppreference.com/w/cpp/numeric/random#Predefined_random_number_generators

另请注意,某些实现不会为 random_device 使用非确定性源。如果您面临这样的实现,您将需要为您的种子寻找替代来源。

关于c++ - 随机双C++11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21102105/

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