一、rand和srand函数
在C语言的库函数中,系统提供了两个用于产生随机数的函数:srand()和rand() 。
rand()函数原型如下:
int rand(void);
void表示它不接受任何参数,返回值是在[0,RAND_MAX]之间的随机整数。
srand()函数原型:
void srand(unsigned seed);
参数的变量类型为unsigned,表示seed只能保存非负整数,这样就避免了不会将复数传递给srand 。
seed是一个用于保存种子的变量,,用来初始化srand()的起始值。
二、函数的调用情况
rand函数并不是真正的随机数生成器,它所产生的其实是根据算法生成的随机数,即在一定范围具备差异性,但当样本足够大时,又具有规律性。
在调用rand函数前,需要调用srand来提供随机数种子。如果在第一次调用rand函数时没有调用srand函数,那么系统将会自动调用srand(),这时rand函数每次运行产生的将会是相同的随机数序列。
如下图所示,这个代码无论运行多少次,产生的都必然是相同的五个随机数。
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int a;
for(int i=0 ; i<5 ; i++)
{
a = rand();
cout << a << endl;
}
return