具有特定范围的随机数

时间:2014-04-08 15:53:12

标签: c random

使用C语言:

  • 如何在[pi,2pi]范围内生成随机数?
  • 如何在[-1,0]范围内生成随机数?

1 个答案:

答案 0 :(得分:1)

这是一个 随机整数生成器,但只测试了正数,你必须修改它才能使用底片:

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;
}

编辑 (由于srand()没有足够的更新,最后一种方法没有产生随机数据)

对于范围 跨越正数和负数,您可以修改它:(但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);
}