使用了C++11标准库中的随机数生成器
#include <QCoreApplication>
#include <QDebug>
#include <random>
这部分代码包含了必要的头文件:
-
QCoreApplication
:用于Qt应用程序的基础类。 -
QDebug
:用于Qt的调试输出。 -
random
:C++11标准库中的随机数生成功能。
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 这是主函数的开始,创建了一个Qt应用程序对象a
std::random_device rd; // 用于获取一个种子
std::mt19937 gen(rd()); // 使用Mersenne Twister算法的生成器
std::uniform_int_distribution<> dis(1, 10); // 定义分布范围为1到10
}
下面这部分代码初始化了随机数生成器:
-
std::random_device rd
:创建一个随机设备,用于生成非确定性的随机数,作为种子。 -
std::mt19937 gen(rd())
:使用Mersenne Twister算法创建一个随机数生成器,并用rd()
生成的随机数作为种子。 -
std::uniform_int_distribution<> dis(1, 10)
:定义一个均匀分布的整数生成器,范围从1到10。
qDebug() << "Random number:" << dis(gen); // 打印随机数
这行代码使用生成器gen
和分布dis
生成一个随机数,并使用qDebug()
打印出来。
return a.exec();
最后,调用QCoreApplication
的exec()
方法,进入Qt的事件循环,等待用户操作或事件触发。
完整代码
#include <QCoreApplication>
#include <QDebug>
#include <random>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
std::random_device rd; // 用于获取一个种子
std::mt19937 gen(rd()); // 使用Mersenne Twister算法的生成器
std::uniform_int_distribution<> dis(1, 10); // 定义分布范围为1到10
qDebug() << "Random number:" << dis(gen); // 打印随机数
return a.exec();
}