C++ 生成随机数 srand 和 time 函数

时间:2024-03-16 21:15:30

C++ 生成随机数,通常采用 srandtime 函数来设置随机数种子。

一、 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 函数的种子,可以确保每次程序运行时都使用不同的种子,从而产生不同的随机数序列。

三、示例代码:

采用 srandtime 函数设置随机数种子:

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