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以内的随机数
相关推荐
懂点Tech4 小时前
ctfshow misc28:GIF 高度修改解题与脚本实现
开发语言·windows·python
云和数据.ChenGuang4 小时前
Python 重写(Override)深度解析:从 MRO 到 super() 的完整机制
java·开发语言·人工智能·python·langchain·1024程序员节
美狐美颜SDK开放平台5 小时前
视频美颜SDK试用DEMO阶段应该测试什么?直播APP接入实操指南
开发语言·人工智能·深度学习·音视频·美颜sdk·直播美颜sdk·第三方美颜sdk
dtq04245 小时前
C++小案例 - 日志实战
开发语言·c++
星夜离尘565 小时前
MATLAB ADC 码流触顶诊断:命中数、缺口分段与削顶不可辨识性
开发语言·matlab
码匠许师傅6 小时前
【C++三方组件】Qt 概览:桌面 C++ 的事实标准与许可证三轨
开发语言·c++·qt
码匠许师傅7 小时前
【C++三方组件】POCO:跨平台系统编程全家桶
开发语言·c++
bkspiderx7 小时前
基于Socket的广播通信及C语言实现详解
c语言·开发语言·socket·广播·socket的广播通信
小王C语言7 小时前
Qt常用控件:输入类控件,单行/多行输入框、下拉框、(日期)微调框、旋钮、滑动条
开发语言·qt
ESDWAN7 小时前
SD-WAN 主备切换为什么仍然会断网?从检测机制到会话恢复分析
开发语言·php