随机数生成

随机数生成

随机数大小是在0到RAND_MAX,值为2147483647
它是在stdlib中定义的,如果我们希望在某个范围内,可以使用 % 结合 / 来实现。
随机数生成_第1张图片
但是发现每组生成的数据都是一样的

#include 
#include 
#include 
using namespace std;
int main(){
    for(int i=0;i<10;i++){
        int x=rand();
        printf("%d\n",x);
    }
    return 0;
}

非重复随机数生成

之所以生成的数据是一样的,因为存在着一个随机数种子seed,默认seed(1)
只要改变seed就可以改变随机数
srand(time(0));是根据你当前的时间为seed,随着时间变化,seed的值也就不一样

#include 
#include 
#include 
#include 
using namespace std;
int main(){
    srand(time(0));
    for(int i=0;i<10;i++){
        int x=rand();
        printf("%d\n",x);
    }
    return 0;
}

产生确定区间

rand()%x指的是[0,1)*x
[0,x)产生0到x-1的随机数

rand()%a+b
就是产生[b,a+b)

#include 
#include 
#include 
#include 
using namespace std;
int main(){
    srand(time(0));
    for(int i=0;i<10;i++){
        int x=rand()%10;
        printf("%d\n",x);
    }
    return 0;
}

你可能感兴趣的:(随机数生成)