我想生成随机双数x
,其中0 <= x <= 1
::
double x = ((double) rand() / (RAND_MAX));
Run Code Online (Sandbox Code Playgroud)
这是从[0,1]获取随机双数的正确方法吗?
是的,因为std::rand()
返回0
和RAND_MAX
.但是,如果您可以使用C++ 11,则可以使用std::uniform_real_distribution
.
另外不要忘记初始化随机数生成器,否则每次执行都会得到相同的序列.如果使用std::rand
,std::srand( std::time(0) )
几乎总是足够的.
归档时间: |
|
查看次数: |
27274 次 |
最近记录: |