作用:
作用:这条指令的意思是利用系统时间来初始化系统随机数的种子值,使得每次运行由于时间不同而产生不同的随机数序列。
使用:如果想在一个程序中生成随机数序列,需要至多在生成随机数之前设置一次随机种子。
即:只需在主程序开始处调用srand((unsigned)time(NULL));后面直接用rand就可以了,切记不要放到for循环内。
介绍:
- 使用原因:如果不使用srand函数,用rand()产生的随机数,在多次运行,结果是一样的。
srand(time(NULL)):这是两个函数
-
srand(unsigned seed)函数,这是在调用rand()这个函数之前使用的,rand()是一个产生随机数的函数,而srand是一个设置随机数种子的函数,通常这两个函数是一起使用的,来完成产生随机数的功能。srand函数通过参数seed来改变系统提供的种子值,从而可以使得每次调用rand函数生成的伪随机数序列不同,从而实现真正意义上的“随机”。
-
time(NULL)这个函数的返回值是作为srand函数的参数(seed)的,意思是以现在的系统时间作为随机数的种子来产生随机数,至于NULL这个参数,因为这个话就返回到现在时间时候的long秒,只有设置成NULL才能获得系统的时间。
例子
#include <iostream>
#include <iomanip>
#include <math.h>
#include <ctime>
using namespace std;
int main()
{
//这条指令的意思是利用系统时间来初始化系统随机数的种子值,使得每次运行由于时间不同产生而产生不同的随机数序列。
//如果想在一个程序中生成随机数序列,需要至多在生成随机数之前设置一次随机种子。
//即:只需在主程序开始处调用srand((unsigned)time(NULL));后面直接用rand就可以了
srand((unsigned)time(NULL));
int temp = 0;
temp= rand() % 10; //获取0~10之间的随机数
cout << temp << endl;
return 0;
}