Qt生成随机数的方法

  • Post author:
  • Post category:其他



1.生成随机数

生成随机数主要用到了函数qsrand和qrand,这两个函数在#include <QtGlobal>中,qsrand用来设置一个种子,该种子为qrand生成随机数的起始值。比如说qsrand(10),设置10为种子,那么qrand生成的随机数就在[10,32767]之间。而如果在qrand()前没有调用过qsrand(),那么qrand()就会自动调用qsrand(1),即系统默认将1作为随机数的起始值。使用相同的种子生成的随机数一样。

下列代码生成了[0,9]之间的10个随机数。

void generateRandomNumber()
{
    qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
    for(int i=0; i<10; i++)
    {
        int test =qrand()%10;
        qDebug()<<test;
    }
}

注意代码中使用的种子,这里没有用固定值来作为种子,是希望函数在每次调用(间隔大于1秒)时生成的随机数不一样。


2.使用QRandomGenerator


随机数

这个类是Qt 5.10引入的

#include <QCoreApplication>
#include <QRandomGenerator>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplica



版权声明:本文为caoshangpa原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。