Qt创建不重复随机数
来源:互联网 发布:软件开发相关书籍 编辑:程序博客网 时间:2024/05/22 07:06
该代码创建一个随机数的类。
构造函数有两个:(1)参数为一个整形数,如传入300,则产生0~299的随机数,其中随机数不重复。(2)参数为Qlist<int>,根据这个list直接初始化。
//头文件
#ifndef RAND_NUM
#define RAND_NUM
#include <QList>
class RandNum
{
public:
RandNum(int nimg);
RandNum(QList<int> ilist);
~RandNum();
int getRandNum(int x);
void showRandNum(void) const;
int getImgNum(void);
protected:
private:
QList<int> intList;
int nImg;
};
#endif // RAND_NUM
//.cpp文件
#include <QDebug>
#include <QApplication>
#include "mainwindow.h"
#include <QTime>
#include <rand_num.h>
RandNum::RandNum(int nimg)
{
this->nImg=nimg;
int i=0, m=0;
QTime time;
for(i=0;;)
{
int randn;
time = QTime::currentTime();
qsrand(time.msec()*qrand()*qrand()*qrand()*qrand()*qrand()*qrand());
randn = qrand()%nImg;
m=0;
while(m<i && intList.at(m)!=randn) m++;
if(m==i) { intList.append(randn); i++;}
else if(i==nImg) break;
else continue;
}
}
RandNum::RandNum(QList<int> ilist)
{
this->nImg = intList.count();
this->intList = ilist;
}
RandNum::~RandNum(){}
int RandNum::getRandNum(int x)
{
if (x>=intList.count()){
qDebug()<<"exceed intList count!"<<"x:"<<x<<";count:"<<intList.count();
return -1;
}else{
return this->intList.at(x);
}
}
void RandNum::showRandNum() const
{
qDebug()<<"=====randNumber show begin========";
qDebug()<<"intList.count():"<<intList.count();
for(int i=0; i<this->intList.count(); i++) {
qDebug()<<i<< this->intList.at(i);
}
qDebug()<<"=====randNumber show end==========\n";
}
int RandNum::getImgNum() { return intList.count(); }
0 0
- Qt创建不重复随机数
- Qt不重复随机数
- 用脚本创建一个不重复的随机数数组
- 不重复随机数(int)
- 不重复随机数(int)
- 不重复的随机数
- 产生不重复随机数
- 不重复随机数
- 不重复随机数问题
- 获取不重复随机数
- 不重复的随机数
- iOS 随机数 不重复
- 生成不重复随机数
- 实现随机数不重复
- 产生不重复随机数
- 生成不重复随机数
- 生成不重复随机数
- 产生不重复随机数
- 生产者和消费者
- leetcode-Excel Sheet Column Number
- Java 并发核心编程
- net.sf.hibernate.PropertyNotFoundException
- C#学习之路,学习笔记 第八章 8.4重载
- Qt创建不重复随机数
- WPF程序
- Parallel dev: .NET SynchronizationContext 二三事
- ARM_s5pv210_arm_4
- Android自定义ViewGroup工具类ViewDragHelper分析
- JS获取EL表达式的值
- IOS基础UI之(十) UIPickerView和UIDatePicker详解
- python的str,unicode对象的encode和decode方法
- Java并发的四种风味:Thread、Executor、ForkJoin和Actor