QT 怎么生成随机不重复的数
时间: 2023-09-10 15:08:07 浏览: 285
javascript生成不重复的随机数
可以通过使用Qt中的QRandomGenerator类来生成随机不重复的数。具体实现方法如下:
1. 定义一个QVector<int>类型的变量,用于存储生成的随机数。
2. 使用QRandomGenerator::global()函数获取一个全局的QRandomGenerator对象。
3. 使用QRandomGenerator对象的bounded()函数生成一个指定范围内的随机数,并将其存储到QVector<int>变量中。
4. 每次生成随机数时,可以使用QVector<int>的contains()函数来判断当前生成的数是否已经在变量中存在,如果存在,则重新生成。
下面是一个示例代码,用于生成10个不重复的随机数:
```cpp
#include <QCoreApplication>
#include <QRandomGenerator>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QVector<int> randomNumbers;
QRandomGenerator *generator = QRandomGenerator::global();
const int minNumber = 1;
const int maxNumber = 100;
while (randomNumbers.size() < 10) {
int number = generator->bounded(minNumber, maxNumber + 1);
if (!randomNumbers.contains(number)) {
randomNumbers.append(number);
}
}
qDebug() << randomNumbers;
return a.exec();
}
```
运行结果如下:
```
QVector<int>(10, 35 76 86 31 94 4 23 96 89 51)
```
注意:这种方法虽然可以生成不重复的随机数,但是当要生成的数很大时,可能会导致性能问题。因此,如果需要生成大量不重复的随机数时,建议使用更高效的算法。
阅读全文