1.生成随机数
生成随机数主要用到了函数qsrand和qrand,这两个函数在#include
下列代码生成了[0,9]之间的10个随机数。
void generaterandomnumber()
{
qsrand(qtime(0,0,0).secsto(qtime::currenttime()));
for(int i=0; i<10; i )
{
int test =qrand();
qdebug()<
注意代码中使用的种子,这里没有用固定值来作为种子,是希望函数在每次调用(间隔大于1秒)时生成的随机数不一样。
2.生成不重复的随机数
这个没有特别好的方法,需要自己手动计算,代码如下。
void generateuniquerandomnumber()
{
int i,j;
qlist numberslist;
qsrand(qtime(0,0,0).secsto(qtime::currenttime()));
for(i=0;i<10;i )
{
numberslist.append(qrand());
bool flag=true;
while(flag)
{
for(j=0;j
3.生成递增的随机数
就是在随机数生成后进行排序,qt提供了一个非常好用的排序函数qsort,详细的用法可参考qt帮助。
void generateascendrandomnumber()
{
int i;
qlist numberslist;
qsrand(qtime(0,0,0).secsto(qtime::currenttime()));
for(i=0;i<10;i )
{
numberslist.append(qrand());
}
qsort(numberslist.begin(),numberslist.end());
for(i=0;i<10;i )
{
qdebug()<
输出结果如下所示,可以看出qsort默认递增排序,即使数列中包含相同的数。