函数一:int rand(void);
从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。
函数二:void srand(unsigned seed);
参数seed是rand()的种子,用来初始化rand()的起始值。
如果在rand()之前没有调用srand (),它会自动调用srand(1)一次。
可以把随机数列看做是一个长为RAND_MAX的随机数组,而srand(seed)就是取数组的下标,从这个下标开始往后去数组中的数。
因此如果给seed指定的是一个定值,那么每次程序运行时rand()产生的值都会一样,虽然这个值会是[seed, rand_max(0x7fff))之间的一个随机取得的值。
所以利用时间作为seed,那么每次取到的值随机性很强的。
srand((unsigned)time(0));
例如网游的服务器,每次启动的时候都设置种子srand((unsigned)time(0)),然后所有的随机数都无须再设置种子,相当于每次都依次往后取随机数组中的数,只要rand()就可以取到比较满意的随机数了。