如何在C中生成-1和1之间的随机数?

use*_*326 1 c random numbers negative-number

我正在尝试对任务进行蒙特卡罗积分。这涉及在 x 和 y 轴上生成 -1 到 1 之间的随机数......我想我知道如何生成 0 到 1 之间的随机数,但不知道如何将其更改为 -1 到 1 之间。任何帮助将不胜感激,并在此先感谢...这是(一些)到目前为止我的代码:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>

double x,y;


int main(){

srand(time(NULL));

x=rand()/(double)(RAND_MAX);
y=rand()/(double)(RAND_MAX); /*HOW DO I MAKE THIS FROM -1 TO 1*/

return 0;
}
Run Code Online (Sandbox Code Playgroud)

*我很确定一旦我知道如何生成这些负随机数,我就可以自己解决剩下的问题,所以上面的代码只是问题的一小部分(其余的我打算自己做)

小智 6

你就不能做吗x=(rand()/(double)(RAND_MAX)) * 2 - 1


Ste*_*veL 5

double randf(double low,double high){
    return (rand()/(double)(RAND_MAX))*abs(low-high)+low;
}

randf(-1,1);
Run Code Online (Sandbox Code Playgroud)