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以内的。

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

c++如何产生随机数,并规定取值范围?
用rand()函数产生随机数,想规定范围就用取余,比如限定一个随机数为【3 ,102】的数,那么(rand()%(102-3+1))+3,这样得到数就会在这个范围里,102-3+1==100,那么rand()%100的范围为 0-99,这个范围再加3为3 - 102

C++如何获得一个随机的数?
一、C++获取随机数的方法 rand()方法是C++获取随机数的方法,可以通过srand()方法获取系统的时间,用系统时间作为判断依据,生成随机数,随机数的大小通过rand()方法获取的值,进行取余后获得。也就是说,srand方法获取到了系统的时间,他是毫秒级的,然后通过这个毫秒级的数据,对100取余,即可获得0-1...

c++如何随机生成0和1
1)C++中的rand()函数可以得到一个0-RNDMAX之间的随机数,Randmax是一个宏,你可以把它理解成65535;2)使用rand()函数必须添加头文件,代码如下:include <cstdlib> 3) 得到0或1的随机数代码如下:int num=rand()%2;因为对2求余的结果不是0就是1,因此上面这句代码就得到了一个0或1的随机...

c++如何产生随机数
随机数 可用系统的函数 int rand (void); 产生,随机数数值范围将 在 0 到 RAND_MAX 之间。为使每次产生的随机数更随机,可用当前时间,用 srand() 产生一个随机种子。c++ 程序例子如下:include<iostream> using namespace std;include <stdio.h> include int main(){ int a[10],i;\/\/ ini...

C++怎么产生随机数?还有产生一定范围的随机数
intmain(){ std::random_devicerd;\/\/GetarandomseedfromtheOSentropydevice,orwhatever std::mt19937_64eng(rd());\/\/Usethe64-bitMersenneTwister19937generator \/\/andseeditwithentropy.\/\/Definethedistribution,bydefaultitgoesfrom0toMAX(unsignedlonglong)\/\/orwhathaveyou.std::uniform_int_...

C++中怎么获取1到100的随机数?
iUp);而下面这段代码则指定返回值必须在50-100的范围之内:int iResult;int iUp=100;int iDown=50;iResult=ro.Next(iDown,iUp);除了Random.Next()方法之外,Random类还提供了Random.NextDouble()方法产生一个范围在0.0-1.0之间的随机的双精度浮点数:double dResult;dResult=ro.NextDouble();

c++如何产生0到1之间的随机数?
C++中用来产生随机数的函数为rand(), 其返回值为整数。而0到1之间的随机数,明显是浮点数。这样无法直接产生。于是,必须经过转换。转换思路为,生成一个0-N的随机数,然后对其除以N+1,则可以得到0-1直接的浮点型随机数。N的确定,可以与要求的精度有关,比如需要三位小数,可以采用N=999,如需要...

C语言中获得随机数的方法
C语言\/C++怎样产生随机数:这里要用到的是rand()函数, srand()函数,C语言\/C++里没有自带的random(int number)函数。(1) 如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647。例如...

怎样在C++中产生10个30~100的随机数
C++中没有自带的random函数,要实现随机数的生成就需要使用rand()和srand()。不过,由于rand()的内部实现是用线性同余法做的,所以生成的并不是真正的随机数,而是在一定范围内可看为随机的伪随机数。代码如下:include <iostream> include <cstdlib> include <ctime> define random(a,b) (rand()%(...

C++产生任意两数之间随机数的方法例举
一般用系统时间值作为随机数种子。如果要产生[i,j]之间的随机数,使用以下方法。产生[i,j)之间的随机数,可以使用以下方法。要产生(i,j]之间的随机数,有如下的方法。以上产生随机数的方法,可用通用公式表示。通用公式中,num表示产生随机数的整数范围,i表示随机数的起始值。

相似回答