rand()函数
rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647。
测试代码:
#include<cstdlib>
#include <iostream>
using namespace std;int main()
{
for (int i = 0; i < 10; i++)
{
cout << rand() << endl;
}
system("pause");
return 0;
}
运行三次的结果:
因为没有随机种子所以, 三次的运行结果相同,因此就要引出srand
srand()函数
srand()可用来设置rand()产生随机数时的随机数种子。通过设置不同的种子,我们可以获取不同的随机数序列。
可以利用srand((int)(time(NULL)));的方法,利用系统时钟,产生不同的随机数种子。不过要调用time(),需要加入头文件#include <ctime>。
测试代码:
#include<cstdlib>
#include <iostream>
#include <ctime>
using namespace std;int main()
{
srand((int)(time(NULL)));
for (int i = 0; i < 10; i++)
{
cout << rand() << endl;
}
system("pause");
return 0;
}
运行三次的结果:
三次的运行结果不同
随机产生范围内的数字
公式:
const int MIN_VALUE = 10;
const int MAX_VALUE = 18;
int number = rand() % (MAX_VALUE - MIN_VALUE + 1) + MIN_VALUE;
测试代码:
#include<cstdlib>
#include <iostream>
#include <ctime>
using namespace std;int main()
{
srand((int)(time(NULL)));
for (int i = 0; i < 20; i++)
{ const int MIN_VALUE = 10;
const int MAX_VALUE = 18;
int number = rand() % (MAX_VALUE - MIN_VALUE + 1) + MIN_VALUE;
cout << number << endl;
}
system("pause");
return 0;
}
结果: