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;
}