C++ 生成随机数,通常采用 srand
和 time
函数来设置随机数种子。
一、 srand 函数:
-
srand
函数用于设置伪随机数生成器的种子。伪随机数生成器是一个算法,它根据特定的种子生成看似随机的数值序列。 - 在每次程序运行时,如果使用相同的种子调用
srand
函数,将会得到相同的随机数序列。因此,通常会使用变化的种子,比如基于当前时间。 -
srand
函数的原型是void srand(unsigned int seed)
,它接受一个无符号整数作为种子参数。
二、time函数:
-
time
函数用于获取当前的系统时间。它返回从 1970 年 1 月 1 日开始计算的秒数。 -
time
函数的原型是time_t time(time_t* timer)
,它接受一个指向time_t
对象的指针作为参数,用于存储当前时间的值。 - 通过将
time
函数的返回值作为srand
函数的种子,可以确保每次程序运行时都使用不同的种子,从而产生不同的随机数序列。
三、示例代码:
采用 srand
和 time
函数设置随机数种子:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand(static_cast<unsigned>(time(NULL)));
for (int i = 0; i < 5; ++i)
{
int randomNum = rand() % 5;
cout << randomNum << " ";
}
return 0;
}