qt如何随机产生一组指定范围内的不重复随机数
时间: 2023-06-13 19:07:20 浏览: 90
可以使用Qt自带的QRandomGenerator类来生成随机数,并通过setSeed()方法设置随机数种子,以保证每次生成的随机数序列都不同。具体实现可以参考下面的代码:
```cpp
#include <QRandomGenerator>
QList<int> generateRandomNumbers(int min, int max, int count) {
QList<int> numbers;
if (count > (max - min + 1)) {
return numbers;
}
QRandomGenerator generator;
generator.setSeed(QDateTime::currentMSecsSinceEpoch() % 1000000000);
for (int i = 0; i < count; i++) {
int number;
do {
number = generator.bounded(min, max + 1);
} while (numbers.contains(number));
numbers.append(number);
}
return numbers;
}
```
上述代码中,我们通过QList来存储生成的随机数,count参数表示要生成的随机数个数,min和max参数表示随机数的取值范围。在生成随机数时,我们使用了QRandomGenerator类的bounded()方法来限制随机数的取值范围,并通过do-while循环判断生成的随机数是否已存在于已生成的随机数列表中。最后返回生成的随机数列表。