Qt 生成随机数 qsrand qrandhttps://www.cnblogs.com/ybqjymy/p/13424788.html
在QT中有两个相关函数(位于QtGlobal中,QApplication中也包含)
void qsrand(uint seed)
int qrand()
首先是利用当前系统时间作为种子初始化函数
(需要#include<QTime>)
qsrand(QTime(0,0,0).secsTo(QTime::currentTime())); qsrand(QTime::currentTime().msec());
(这一步容易导致隐式类型转换警告“implict conversion change signedness”)
然后是生成随机数输出的函数
int random_number = qrand();
qrand()理论上返回0(若无随机数种子)到RAND_MAX(系统默认值)间的任意值
该种子作为qrand生成随机数的起始值,RAND_MAX为缺省值,即随机数在种子值到最大值之间
可以利用取余运算%来控制随机数范围
如果要返回0~n间的任意整数值,则为:qrand()%n
如果要返回a~b间的任意整数值,则为:a+qrand()%(b-a)
Qt生成随机数-qrand及QRandomGenerator_tgtsml的博客-CSDN博客_qrandomhttps://blog.csdn.net/time_forget/article/details/92794286利用QRandomGenerator类(Qt5.10之后新增该类)
需要#include<QRandomGenerator>
qDebug()<<QRandomGenerator::global()->bounded(10); //生成一个0和10之间的整数
qDebug()<<QRandomGenerator::global()->bounded(10.123); //生成一个0和10.123之间的浮点数
qDebug()<<QRandomGenerator::global()->bounded(10, 15); //生成一个10和15之间的整数