一 概述:
(1)rand函数
1 语法:
#include<stdlib.h>
int rand(void);
2 功能:
连续调用rand将返回0到int类型的最大可表示的正值之间的整数值,它们是一个伪随机数生成器产生的结果。在标准C中,rand的上界为RAND_MAX所指定,这个值至少为32767。
(2)srand函数
srand函数用于初始化伪随机数产生器,以便为rand调用提供连续的值。在调用srand之后,接下来对rand的连续调用将会产生一个特定序列的伪随机数。如果再次用同一个参数调用srand,则此后每个rand调用序列将会产生相同的伪随机序列。
系统在调用rand()之前都会自动调用srand(),如果用户在rand()之前曾调用过srand()给参数seed指定了一个值,那么 rand()就会将seed的值作为产生伪随机数的初始值;而如果用户在rand()前没有调用过srand(),那么系统默认将1作为伪随机数的初始值。
所以为了避免上述情况的发生我们通常用srand((unsigned)time(0))或者srand((unsigned)time(NULL))来 产生种子。如果仍然觉得时间间隔太小,可以在(unsigned)time(0)或者(unsigned)time(NULL)后面乘上某个合适的整数。 例如,srand((unsigned)time(NULL)*10)。