下面总结了QT中随机生成的方法(仅供学习参考),分为旧方法和新方法,一般来说,旧的方法已经被抛弃,在开发新的应用中推荐使用新方法。

 C++ Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
#include <QCoreApplication>
#include <QDebug>
#include <QTime>
#include <QRandomGenerator>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    // 旧方法
    // 生成随机数主要用到了函数qsrand和qrand,这两个函数在#include <QtGlobal>中;
    // qsrand用来设置一个种子,该种子为qrand生成随机数的起始值。
    // 比如说qsrand(10),设置10为种子,那么qrand生成的随机数就在[10,32767]之间。
    // 而如果在qrand()前没有调用过qsrand(),那么qrand()就会自动调用qsrand(1),即系统默认将1作为随机数的起始值。
    // 使用相同的种子生成的随机数一样。
    // 在使用qrand()函数产生随机数之前,一般要使用qsrand()函数为其设置初值,如果不设置初值,那么每次运行程序,qrand()都会产生相同的一组随机数。
).secsTo(QTime::currentTime()));
    ;
    qDebug() << nTestNum;
    // 新方法(推荐使用)
);
    qDebug() << QRandomGenerator::global()->bounded();
    return a.exec();
}

说明:旧方法使用的是qsrand()和qrand()的组合实现方法,精度一般;新方法使用的是QRandomGenerator类,可以提供高精度的随机数实现。

最新文章

  1. c# float显示时保存一位小数
  2. 使用神经网络来识别手写数字【译】(三)- 用Python代码实现
  3. Html5文件
  4. mvn详解
  5. 【SICP读书笔记(二)】使用过程来黏合数据 —— 酷炫吊的消息传递机制
  6. js的eval函数
  7. 学习smart gwt 的一些好的网站
  8. React源码学习——ReactClass
  9. 【Python】 docker-py 用Python调用Docker接口
  10. MySQL架构备份
  11. 初入 nodejs -遍历文件夹
  12. [面试]StringBuilder StringBuffer源码粘贴(并非源码分析, 请绕道)
  13. VSTO中Word转换Range为Image的方法
  14. 最大矩阵(简单DP)
  15. Linux&#160;解决Linux下火狐浏览器中文乱码成方块显示问题
  16. Mysql中大数据类型的存取
  17. 洛谷P2447 [SDOI2010]外星千足虫(异或方程组)
  18. 安装ansible集群管理和配置密钥互信
  19. poj1741 树上的分治
  20. PHP20-challenge12

热门文章

  1. 【Web安全】越权操作——横向越权与纵向越权
  2. 认知计算 Cognitive Computing
  3. C语言 &#183; LOG大侠
  4. Linux下LDAP统一认证解决方案
  5. PTC FlexPLM rfa 常用功能api
  6. 连接两个点云中的字段或数据形成新点云以及Opennni Grabber初识
  7. sublime 之 vitage/emmet
  8. 目录_Java内存分配(直接内存、堆内存、Unsafel类、内存映射文件)
  9. 给初学者的20个CSS实用建议
  10. VMware快照的工作原理