在C语言中,rand()函数可以用来产生随机数,但是这不是真正意义上的随机数,是一个伪随机数,是根据一个数为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态分布,从而相当于产生了随机数,但这不是真正的随机数。可以称为伪随机数。
rand()函数存放于"stdlib. h"头文件中。
使用如下:
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
for(int i=0;i<10;i++)
{
printf("%d\n",rand());
}
return 0;
}
这样生成的伪随机数是默认位于从0到rand_max,而rand_max定义在stdlib.h,其值为2147483647。
要想生成的不可预见的随机数且位于一定范围内则需要引入srand()函数与rand()函数一起配合,而获取在一定范围内的数的话,直接做相应的除法取余即可。由于rand产生的随机数从0到rand_max,而rand_max是一个很大的数,那么如何产生从X~Y的数呢?只要这样写:rand()%(Y-X+1)+X;即可产生任何范围内的随机数。
例如:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
srand(time(0));
for(int i=0;i<10;i++)
{ printf("%d\n",rand()%100);//随机生成100以内的数
}
return 0;
}
其中srand(time(NULL)); 是以当前时间为种子,产生随意数。其中,time(NULL)用来获取当前时间,本质上得到的是一个大整数,然后用这个数来随机数。使调用rand()函数产生的初始随机数不再是1。
如何用c语言生成随机数
最新推荐文章于 2024-10-10 22:20:21 发布