随机数生成
Posted emcikem
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随机数生成相关的知识,希望对你有一定的参考价值。
随机数生成
随机数大小是在0到RAND_MAX,值为2147483647
它是在stdlib中定义的,如果我们希望在某个范围内,可以使用 % 结合 / 来实现。
但是发现每组生成的数据都是一样的
#include <iostream>
#include <cstdio>
#include <cstdlib>
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 <iostream>
#include <cstdio>
#include <cstdlib>
#include <ctime>
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 <iostream>
#include <cstdio>
#include <cstdlib>
#include <ctime>
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;
以上是关于随机数生成的主要内容,如果未能解决你的问题,请参考以下文章