私はC++とQtでGUIを使った小さなプログラムを書いています。 語彙トレーナーに似ているはずです。私は自分の勉強のためにそれを使用します。一方的に優先するランダムアルゴリズム
私はオブジェクトのQListを持っています(名前と説明は文字列などです)。
次に、int型の2番目のQListがあります。他のリストのすべてのオブジェクトに対して、intはこのリストにあります。開始値はすべてのオブジェクトに対して50です。ユーザーが正解をクリックすると、それは減分され、逆も同様です。 だから、値70を持つオブジェクトは、だから私は/それを増減正解方法では、QListのを並べ替えると、私のランダムなアルゴリズムを使用して値30を持つオブジェクトよりユーザーに、より頻繁に表示される必要があります。
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%に見えることを望んでいませんが、ちょうどボキャブラリートレーナーのように、より頻繁に表示されることを望みます。
ここにも記載されています:http://stackoverflow.com/questions/1761626/weighted-random-numbers/1761646#1761646 –
@Mu Mind、多くのうちの1つです。この質問は定期的にポップアップします。 –
hmuelnerとMu Mindとありがとう、それは私が望むように動作します。 – VanillaBear