srand()是随机数种子,s表示seed,种子的意思。
rand()可以产生0到RAND_MAX(32767)之间的随机数,用rand()%x可以得到0到x之间的随机数。
srand()和rand()都需要用到stdlib.h。
srand()的种子主要有两种,srand(1)和srand((unsigned)time(NULL)),前者生成的随机数每次都是相等的,后者则是根据现在在走的时间取的随机数,是真随机数。
附上验证代码:
#include<iostream>
#include<vector>
#include<time.h> //是C/C++中的日期和时间头文件。用于需要时间方面的函数
#include<stdlib.h> //定义了RAND_MAX,srand()等
using namespace std;
int main() {
srand(1);
for (int i = 0; i < 10; ++i) {
cout << rand() << ' ';
}
cout << endl;
}
运行了三次,输出的都是下面的结果:
#include<iostream>
#include<vector>
#include<time.h> //是C/C++中的日期和时间头文件。用于需要时间方面的函数
#include<stdlib.h> //定义了RAND_MAX,srand()等
using namespace std;
int main() {
srand((unsigned)time(NULL)); //srand((unsigned)time(0))也可
for (int i = 0; i < 10; ++i) {
cout << rand()%10 << ' ';
}
cout << endl;
}
运行三次,结果各异: