double get_random(double min, double max) {
/* Returns a random double between min and max */
return min * ((double) rand() / (double) RAND_MAX) - max;
}
Run Code Online (Sandbox Code Playgroud)
这是我在最小和最大之间产生随机双打的功能.但是,当我打电话时get_random(-1.0, 1.0);
,我得到-2.0和-1.0之间的值.
知道我做错了什么以及如何解决它?
Luc*_*ore 18
不应该是公式
(max - min) * ( (double)rand() / (double)RAND_MAX ) + min
Run Code Online (Sandbox Code Playgroud)
(double)rand() / (double)RAND_MAX
返回0
和之间的随机数1
(max - min) * ( (double)rand() / (double)RAND_MAX )
返回0
和之间的随机数max - min
.0 + min
和之间返回一个随机数min + (max-min)
- 即min
和max
. 归档时间: |
|
查看次数: |
24459 次 |
最近记录: |