rand函数生成随机数

C语言中,rand函数是用来产生随机数,但是并不是真真意义上的随机数,是一个伪随机数,是根据一个种子数产生的,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了srand()函数,它的函数原形是void srand( unsigned int seed );rand()会返回一随机数值,范围在0至RAND_MAX间。RAND_MAX定义在stdlib.h的头文件中(32767),在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1

   如何产生不可预见的随机数种子呢?我们可以利用时间,利用函数srand((unsigned int)(time(NULL))是一种方法,因为每一次运行程序的时间是不同的。time_t time( time_t *timer );函数time返回值是当前时间点与计算机生日的差值,利用时间可以很好的产生不同的随机数种子

       在C语言里所提供的随机数发生器的用法:现在的C编译器都提供了一个基于ANSI标准的伪随机数发生器函数,用来生成随机数。它们就是rand()和srand()函数。

*首先给srand提供一个随机数种子种子,它是一个unsigned int类型,其取值范围从0~65535;

*然后调用rand,它会根据提供给srand的种子值返回一个随机数(在0到32767之间)

*无论什么时候,都可以给srand()提供一个新的种子,进一步“随机化”rand的值。

例如:产生1到100之间的随机数
#include<stdio.h>
int main()
{
	srand((unsigned)time(NULL));//产生随机数种子
	int rand_num=(rand()%100)+1;//产生1到100直接的随机数
	printf("rand_num=%d\n",rand_num);
	return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值