Qt产生随机数

Qt产生随机数

提问:

有没有小伙伴遇到这么一种情况,使用rand()和qrand()函数生成的随机数好像不是那么随机,每次都一样。那这种就叫做"伪随机",因为没有种随机数种子,所以系统默认随机数种子是固定值。

在Qt项目中呢,生成随机数有两个步骤:

1.使用qsrand()种随机数种子

2.调用qrand()生成随机数

注意:

1.实践证明、如果是要在某一循环中产生随机数,随机数种子一定要写在循环外面,循环的时候用qrand()函数获取随机数。

2.千万、千万、千万不能在循环内部设置时间种子,因为CPU处理循环一次时间太短,会产生大量重复的值,这样获取的随机数是没有意义的。

3.切记!计算机产生的随机数都是伪随机数,不是真正意义的随机数,不能用它来进行某些统计计算等。

实现:

方法一:

javascript 复制代码
#include <QTime>
#include <QtGlobal>
QTime time;
time= QTime::currentTime();
qsrand(time.msec()+time.second()*1000);
或者
qsrand(QTime(0, 0, 0).msecsTo(QTime::currentTime()));
int n = qrand() % 10;    //产生10以内的随机数

方法二:

javascript 复制代码
#include <QTime>
#include <QtGlobal>
qsrand(0);
int n = qrand() % 10;    //产生10以内的随机数
相关推荐
码兄科技1 分钟前
Java AI智能体开发实战:从零构建企业级智能应用指南
java·开发语言·人工智能
zh路西法12 分钟前
【现代控制理论与卡尔曼滤波】从状态空间到Python仿真实现
开发语言·python
Evand J20 分钟前
【论文复现】MATLAB例程,存在测距误差的WSN无锚点分布式自定位,《WSN中存在测距误差的无锚点分布式自定位方法》
开发语言·分布式·matlab·定位·导航·wsn
techdashen39 分钟前
kTLS 进入 rustls 组织:把 TLS 的数据面交给内核
开发语言·php
Lhappy嘻嘻1 小时前
Java 并发编程(六)|并发进阶高频:CAS、锁升级
java·开发语言
techdashen1 小时前
Arborium:把 tree-sitter 语法高亮打包成 Rust 文档生态的基础设施
开发语言·后端·rust
尘中远1 小时前
【Qwt 7.0 系列】常用图表类型实战 —— 柱状图、散点图、箱线图与直方图
qt·qwt·工业软件·科学绘图
会周易的程序员1 小时前
microLog 后端开发指南
开发语言·c++·物联网·设计模式·日志·iot·aiot
Esaka_Forever1 小时前
Python 完整内存管理机制详解
开发语言·python·spring
星空露珠1 小时前
迷你世界UGc3.0脚本Wiki[剧情动画模块管理接口 Timeline]
开发语言·数据结构·算法·游戏·lua