在Qt4中创建一个随机字符串或数字

在Qt4中创建一个随机字符串或数字,qt,qt4,random,Qt,Qt4,Random,有什么函数或类似的东西可以用来创建完全随机的字符串或数字吗?您可以使用创建随机数字。如果需要字符串,可以将int转换为string。您还可以检查该类,该类生成通用唯一标识符。这些不是“完全随机的”,但它们是独一无二的 int number; int randomValue = qrand() % number; 返回带有0的随机数randomValue。以下示例生成大写字母从a到Z且长度=len的字母字符串 QString randString(int len) { QString s

有什么函数或类似的东西可以用来创建完全随机的字符串或数字吗?

您可以使用创建随机数字。如果需要字符串,可以将int转换为string。您还可以检查该类,该类生成通用唯一标识符。这些不是“完全随机的”,但它们是独一无二的

int number;
int randomValue = qrand() % number;

返回带有0的随机数
randomValue
。以下示例生成大写字母从a到Z且长度=len的字母字符串

QString randString(int len)
{
    QString str;
    str.resize(len);
    for (int s = 0; s < len ; ++s)
        str[s] = QChar('A' + char(qrand() % ('Z' - 'A')));

    return str;
}
QString随机字符串(int len)
{
QString-str;
str.resize(len);
对于(int s=0;s
这不是在给定范围内生成随机数的好方法。(事实上,这对大多数发电机都非常有害)

假设来自生成器的低阶位均匀分布。大多数发电机并非如此。在大多数生成器中,随机性发生在高阶位

通过使用除法后的余数,实际上就是放弃了随机性

你应该使用乘法和除法进行缩放。不使用模运算符。 乙二醇

如果
generator\u output
处于
[0,generator\u maximum]
我的号码
将在
中[start\u required,start\u required+range\u required]

是使用的好答案。下面的解决方案使用(如上所述)生成随机且唯一的ID(它们都是
hex
number):

使用quid

#include <QUuid>
QString randomStr = QUuid::createUuid();
#包括
QString randomStr=quid::createUuid();

您答案中的链接现在已断开!-应该改用。
my_numbe r= start_required + ( generator_output *  range_required)/generator_maximum;
#include <QApplication>
#include <QDebug>
#include <QRegularExpression>
#include <QUuid>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    // random hex string generator
    for (int i = 0; i < 10; i++)
    {
        QString str = QUuid::createUuid().toString();
        str.remove(QRegularExpression("{|}|-")); // if you want only hex numbers
        qDebug() << str;
    }

    return a.exec();
}
"479a494a852747fe90efe0dc0137d059"
"2cd7e3b404b54fad9154e46c527c368a"
"84e43735eacd4b8f8d733bf642476097"
"d7e824f920874f9d8b4264212f3bd385"
"40b1c6fa89254705801caefdab5edd96"
"b7067852cf9d45ca89dd7af6ffdcdd23"
"9a2e5e6b65c54bea8fb9e7e8e1676a1a"
"981fa826073947e68adc46ddf47e311c"
"129b0ec42aed47d78be4bfe279996990"
"818035b0e83f401d8a56f34122ba7990"
#include <QUuid>
QString randomStr = QUuid::createUuid();