c语言随机数的产生方法

写程序时候有时候需要产生一个随机数,c语言有内建的随机数产生函数rand();

它包含在stdlib库中

例如

#include<stdlib.h>

int a;

a=rand();

这时,a变量内存的是0到32767(32位操作系统)之间的一个随机数。

但是虽然每次调用rand(),函数时值不一样,他们是一个系列,可是下一次运行程序时候,出来的随机数还是这个序列。

这是因为rand()函数要产生一个随机数必须依靠一个种子数,如果没有约定,种子数就是1;

这样每次程序运行产生的第一个随机数都一样,第二个也一样以后都一样。

为了解决这个问题,在调用rand()函数之前先调用一次srand(值)函数;这样随着值的不同每次程序运行产生的第n个值也就不同了。为了方便,大部分程序员都用时间来作为值。

例如:

srand(time(NYLL));

这样种子数就是随时间变化的数,rand()函数随机出来的数就不是固定的序列了。

这时产生的随机数是0到32767之间的一个数,我们如果需要产生0到x之间的数可以取余操作例如产生0到10之间的数,可以用:

a=rand()%11;

产生5到10之间的数

a=5+rand()%(11-5);

产生100到999之间的数

a=100+rand()%(1000-100);

产生x到y之间的数:

a=x+rand()%(y+1-x);

这样就可以产生随机数了;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值