c - 如何在 C 中生成 -1 和 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;
}

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

最佳答案

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

randf(-1,1);

关于c - 如何在 C 中生成 -1 和 1 之间的随机数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22115241/

相关文章:

javascript - 数字格式的空格

c - 错误: invalid operands to binary * (have ‘int *’ and ‘int’ )

c - GHC 运行时如何处理文件 I/O?

c - 在 C 中使用链表创建队列

c - 如何在 Linux 中删除 ^M ^J 字符

language-agnostic - 将 [0,1] 区间扩展为 [a,b] 的正确方法是什么?

python - random.random() 在不同的机器上生成不同的数字

javascript - 为什么 JavaScript 输出 16384 而不是 040000?

javascript - 随机数,Math.floor(...) 与 Math.ceil(...)

java - 为什么我的 Java 代码无法运行?