我想生成随机双数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 次 |
| 最近记录: |