如何用c语言生成随机数

在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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值