生成随机数,每次都不同的随机数

#include <ctime> // For time()
#include <cstdlib> // For rand(), srand()
// 临时添加 在全局作用域内初始化随机数生成器
void initialize_random_generator()

{
   
   
    std::srand(
在 Qt 中生成每次不同随机数,通常需要两个步骤: 1. **初始化随机数种子**:使用当前时间(如 `QTime::currentTime().msec()`)作为随机数种子,确保每次运行程序时生成随机数序列不同。 2. **生成随机数**:使用 Qt 提供的 `qrand()` 和 `qsrand()` 函数,或者 C++ 标准库的 `<random>`。 下面是使用 Qt 和 C++ 生成每次不同随机数的完整示例: ### 示例代码(使用 `qrand()` 和 `qsrand()`): ```cpp #include <QCoreApplication> #include <QDebug> #include <QTime> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); // 使用当前时间作为种子 qsrand(QTime::currentTime().msec()); // 生成一个 0 到 99 之间的随机数 int randomNumber = qrand() % 100; qDebug() << "随机数:" << randomNumber; return a.exec(); } ``` #### 代码解释: - `qsrand(QTime::currentTime().msec())`:使用当前时间的毫秒值初始化随机数种子,确保每次运行程序时种子不同。 - `qrand() % 100`:生成一个 0 到 99 之间的随机整数。 - `qDebug()`:输出随机数到控制台。 --- ### 更现代的方式(使用 C++11 `<random>`) 如果你希望使用更现代和更高质量的随机数生成方式,可以使用 C++11 的 `<random>` 库: ```cpp #include <QCoreApplication> #include <QDebug> #include <random> #include <QTime> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); // 获取当前时间戳作为种子 unsigned seed = QTime::currentTime().msec(); // 使用随机数引擎 std::mt19937 gen(seed); // 定义随机数范围 [0, 99] std::uniform_int_distribution<> dist(0, 99); int randomNumber = dist(gen); qDebug() << "随机数:" << randomNumber; return a.exec(); } ``` #### 代码解释: - `std::mt19937`:梅森旋转算法,是一种高质量的伪随机数生成器。 - `std::uniform_int_distribution<>`:定义一个整数分布区间,这里是 0 到 99。 - `QTime::currentTime().msec()`:作为种子传入,确保每次程序运行时生成随机数不同。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值