Key
这个问题的关键是明确伪随机数的概念,计算机生成的随机数都是伪随机数。简单来说这个伪随机数需要依靠一个种子来决定这个数值的大小。默认情况下,这个种子的值是1。这造成了如果不改变种子的值,我们生成的随机数就会是同一个值。因此,我们需要在每次执行生成随机数的代码时,改变种子的值,而计算机的当下系统时间就是非常好的选择。具体情况看下面简单的代码:
#include <iostream>
#include <cstdlib> // srand() 包含在这个库中
#include <ctime>
//time() 包含在这个库中,
//也可以使用time.h这个头文件,但C++还是用<ctime>统一一些
using namespace std;
int main()
{
srand(time(NULL));
// srand()括号当中就是种子的数值,默认情况是srand(1)
// time(NULL)可以获得当下的系统时间,也可以用time(0)
int random_number = rand()%10;
//这里生成的随机数可以通过取余的方式限制范围
cout << random_number << endl;
//每次执行的结果是不同的,达到生成随机数的目的
return 0;
}