C语言中的rand函数(stdlib.h)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i;
srand(time(NULL));
for(i = 5; i > 0; i--)
{
printf("%d\n", rand());
}
return 0;
}
rand()函数用来产生0到RAND_MAX(stdlib.h中的宏定义)之间的随机数,系统在调用rand()之前都会自动调用srand(),如果用户在rand()之前曾调用过srand()给参数seed指定了一个值,那么 rand()就会将seed的值作为产生伪随机数的初始值;而如果用户在rand()前没有调用过srand(),那么系统默认将1作为伪随机数的初始 值。如果给了一个定值,那么每次rand()产生的随机数序列都是一样的,所以我们首先使用time(0)初始化seed参数,使用当前时间初始化seed参数,所以每次调用此程序都能产生不同的随机序列。
time()函数(time.h),原型 time_t time(time_t *t);
返回值和参数t指针所指的长整型变量都会被赋为1970-01-01至今的秒数。
rand()用法举例:
//返回[-1.0, 1.0]之间的随机浮点数
float randnu =(rand()-RAND_MAX/2) / (float)(RAND_MAX/2);
//返回[0, 1.0]之间随机浮点数
float randnu =rand() / (float)RAND_MAX;
C++中的rand()函数用法基本一致,只是将函数包含在std名称空间中,头文件变为#include <cstdlib>。