c++如何产生随机数,并规定取值范围?

如题所述

用rand()函数产生随机数,想规定范围就用取余,比如限定一个随机数为【3 ,102】的数,那么(rand()%(102-3+1))+3,这样得到数就会在这个范围里,102-3+1==100,那么rand()%100的范围为 0-99,这个范围再加3为3 - 102
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-15
#include<cstdio>
#include<cstdlib>
#include<ctime>
int m = 33;
double random()
{
    return (double)rand() / RAND_MAX;
}
int random(int m)
{
    return (int)(random() * (m - 1) + 0.5);
}
int main()
{
    srand(time(NULL));
    for(int i = 0; i < 1; i++)
    {
        int x, y;
        for(;;)
        {
            x = random(m) + 1;
            y = random(m) + 1;
            if(x != y) break;
        }
        printf("%d\n", y);
    }
    return 0;
}

 m = 33,就规定了产生的随机数是33以内的。

本回答被提问者和网友采纳