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以内的随机数
相关推荐
沫璃染墨7 分钟前
《Qt从零入门系列(十一):Qt事件机制详解——从QEvent到鼠标、键盘与定时器事件》
c++·qt·ui·硬件工程·交互·个人开发·qt5
我是小白呀11 分钟前
17-企业Workflow引擎怎么选:定时、队列、n8n、Temporal与Camunda
java·开发语言·人工智能·dubbo·workflow
维克兜率天23 分钟前
【维克】均值回归:跌多了会涨,涨多了会跌
开发语言·笔记·python·算法·均值算法·回归·量化
实心儿儿30 分钟前
Qt — Qt 窗口
开发语言·qt
2601_9622186131 分钟前
C++中分配器allocator的实现
开发语言·c++
wshzd43 分钟前
LLM之Agent(104)|DeepSeek-Harness(十三)ReactLoopAgent 总览:kick → turn → step
开发语言·前端·javascript
共享家95271 小时前
C语言-408
c语言·开发语言
周杰偷奶茶1 小时前
【Java】运算符指南
java·开发语言
2601_966949651 小时前
量化回测中分钟数据应该如何保存?从文件到数据仓库的工程化设计
开发语言·python·pandas·量化交易·股票数据·quantdash
Zhou1411361 小时前
SpringMVC_02_注解开发实战
开发语言·windows·python