我正在用 C++ 和 Qt 编写一个带有 GUI 的小程序。它应该类似于词汇训练器。我会把它用于我自己的学习。
我有一个对象的 QList(例如,名称和描述为字符串)。
然后我有第二个 QList,里面有整数。对于我的其他列表中的每个对象,此列表中都有一个 int。每个对象的起始值为 50;如果用户点击正确,它会减少,反之亦然。因此,值 70 的对象应该比值 30 的对象更频繁地显示给用户。所以在正确的答案方法中,我增加/减少它,对 QList 进行排序并使用我的随机算法:
if(packList.count()==0) // the QList with objects
return;
int Min = 0;
int Max = packList.count()-1; // -1 because i need the index
qsrand(QTime::currentTime().msec());
if (Min > Max)
{
int Temp = Min;
Min = Max;
Max = Temp;
}
int randNum = ((rand()%(Max-Min+1))+Min);
setPage(randNum); // randNum will be used as index in this method
现在我需要的是一种在这个随机算法中实现我的优先级的方法。我不希望具有更高价值的那些出现 90% 的时间,而是更频繁地出现,就像词汇训练师一样。