首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在[0,1) c++之间生成随机数

在[0,1) c++之间生成随机数
EN

Stack Overflow用户
提问于 2018-02-10 08:48:05
回答 1查看 15.7K关注 0票数 1

我试图生成一个均匀分布在[0,1]之间的随机数,我尝试过uniform_real_distribution,但我不知道它是如何工作的。我有下面的代码,但它每次都会生成接近相同的数字~.456

代码语言:javascript
复制
void RandomNumber()
{
srand(time(0));
double number=(double)rand()/((double)RAND_MAX+1);
cout<<"RANDOM NUMBER: "<<number<<endl;
}
EN

回答 1

Stack Overflow用户

发布于 2018-02-10 09:08:43

每次生成随机数时都会重置随机生成器的种子,这意味着如果您尝试在短时间内重复生成数字,则可能会得到相同的结果,因为std::time()仅精确到一秒。

在程序开始时,您应该只调用std::srand()一次,或者更好地使用std::uniform_real_distribution。如果您对<random>库的工作原理感到困惑,可以看看this

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48716109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档