生成随机数是很多计算机程序都需要的功能之一。在 Qt 中,我们可以通过以下几种方式来生成随机数:
1. 使用 Qt 提供的 QRandomGenerator 类
QRandomGenerator 类可以生成质量较高的随机数序列。它在 Qt 5.10 中引入,在 Qt 6 中成为标准类。我们可以通过 QRandomGenerator::global() 来获取一个全局的 QRandomGenerator 对象,并调用各种随机数生成函数来生成所需范围内的随机数。
比如,我们可以使用 next() 方法来生成一个范围在 0 和 INT_MAX 之间的随机整数。代码示例:
#include <QRandomGenerator>
QRandomGenerator gen; // 获取全局对象
int randomInt = gen.bounded(INT_MAX); // 生成随机整数
// 使用随机数做其它操作
我们也可以使用随机数生成函数来生成其它类型的随机数,例如,使用 bounded(1.0) 方法生成一个随机 double 类型的数值,代码如下:
double randomDouble = gen.bounded(1.0);
2. 使用 QTime::currentTime() 函数和 srand() 函数
在早期版本的 Qt 中,我们可以通过 QTime 和 srand 函数联合使用来生成随机数,步骤如下:
- 调用 QTime::currentTime() 函数获取一个当前时间的对象;
- 获取当前时间的总毫秒数,使用产生的值为 srand() 函数初始化;
- 使用 rand() 函数生成所需范围内的随机数。
代码示例:
#include <QTime>
#include <cstdlib> // 包含 srand 和 rand 函数
QTime time = QTime::currentTime();
srand(static_cast<uint>(time.msec())); // 以当前时间为种子初始化 srand
int randomInt = rand() % 10 + 1; // 生成范围在 1 到 10 之间的随机数
// 使用随机数做其它操作
需要注意的是,这种方法生成的随机数的质量较低,不如 QRandomGenerator 类好。
以上是两种生成随机数的方法,建议使用 QRandomGenerator 类来生成随机数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Qt生成随机数的方法 - Python技术站