21xrx.com
2025-03-31 08:47:40 Monday
文章检索 我的文章 写文章
如何在C++中生成随机数?
2023-07-02 09:00:18 深夜i     14     0
C++ 随机数 生成

在C++中生成随机数是一个常规的编程任务,可用于许多应用程序。以下是在C++中生成随机数的几种方法。

1. 使用标准库函数:C++11引入了std :: uniform_int_distribution和std :: uniform_real_distribution类,可以使用它们来生成均匀分布整数和实数的随机数。例如,要生成一个介于0和100之间的随机整数,请使用如下操作:

#include <random>
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> dis(0, 100);
int rand_num = dis(gen);

请注意,使用随机设备rd和梅森旋转器mt19937初始化生成器gen,以确保生成的随机数是真正随机的。

2. 使用ctime库函数:ctime库包含一个名为rand()的函数,该函数返回0和RAND_MAX(在stdlib.h中定义)之间的整数值的伪随机数。然而,rand()不是真正随机的,因此无法在加密应用程序中使用。要使用rand()生成介于0和100之间的随机整数,请使用以下代码:

#include <ctime>
#include <cstdlib>
int rand_num = rand() % 101;

请注意,要使用rand()之前必须使用srand()函数初始化随机种子,可以使用time(NULL)(返回当前时间的秒数的long值)来初始化种子。例如:

srand(time(NULL));

这将使用当前时间来初始化随机种子,从而生成较为随机的数字。

3. 使用外部库:还可以使用一些外部库,例如Boost C ++库中的随机数字生成器。使用Boost库的随机数字生成器,可以生成多种分布的随机数字。

无论使用哪种方法,随机生成的数字都应该根据需要进行验证和测试,以确保生成的数字都是符合预期的,并且在所需范围内分布均匀。

  
  

评论区

请求出错了