Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 特定范围的随机数_C_Random - Fatal编程技术网

C 特定范围的随机数

C 特定范围的随机数,c,random,C,Random,使用C语言: 如何生成[pi,2pi]范围内的随机数? 如何生成[-1,0]范围内的随机数? 这是一个伪随机整数生成器,但仅针对正数进行了测试,您必须将其修改为与负数一起使用: int randomGenerator(int min, int max) { int random=0, trying=0; trying = 1; srand(clock()); while(trying) { random = (rand(

使用C语言:

如何生成[pi,2pi]范围内的随机数? 如何生成[-1,0]范围内的随机数? 这是一个伪随机整数生成器,但仅针对正数进行了测试,您必须将其修改为与负数一起使用:

int randomGenerator(int min, int max)
{
    int random=0, trying=0;

    trying = 1;         
    srand(clock());
    while(trying)
    {
        random = (rand()/32767.0)*(max+1);
        (random >= min) ? (trying = 0) : (trying = 1);
    }

    return random;
}
“编辑上一个”方法由于SRS和更新不足而未生成随机数

对于跨越正数和负数的范围,您可以这样修改它:但pos和neg的比率是相同的

int randomGenerator(int min, int max)
{
    int random=0, trying=0;
    int i=0;

    trying = 1;

    srand(clock());
    while(trying)
    {

        random = (rand()/32767.0)*(max+1);
        (random >= min) ? (trying = 0) : (trying = 1);
    }

    return (i++%2==0)?(random):(-1*random);
}

你读过兰德公司的文档吗?可能是的副本我读过兰德公司的文档。我认为第二个假设的答案是x=rand/RAN_MAX-1,但我不知道如何实现范围[pi,2pi]。