21xrx.com
2024-12-22 23:01:16 Sunday
登录
文章检索 我的文章 写文章
如何在C++中生成随机数?
2023-07-02 09:00:18 深夜i     --     --
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库的随机数字生成器,可以生成多种分布的随机数字。

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

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复