这个表达式如何运作?
Num*rand() / RAND_MAX
例如,如果我将数字替换为7.7
,则会为我提供从0.
到7.
(double
)的值。
答案 0 :(得分:3)
rand()函数生成0
和RAND_MAX
之间的整数值。因此rand()/RAND_MAX
会在0 and 1
之间生成实际值。所以在下面的代码中我们有
0 <= val <= n
其中n
可以是整数或实数。
double val = n * rand()/RAND_MAX;
答案 1 :(得分:1)
标记到MrGreen的答案,我发现当n是整数时,使用0
时我会得到double val = n * rand()/RAND_MAX;
的输出。但是,这可以通过稍加补充来解决:
double val = (double) n * rand()/RAND_MAX;