Zufallszahlen: manche sollen öfters kommen

dkf

Erfahrenes Mitglied
Moin,

ich möchte gerne Zufallszahlen generieren. Manche Zahlen sollen aber öfters kommen.

Hintergrund:
Es sollen Rechenaufgaben gelöst werden.
Wenn nun eine Aufgabe falsch gelöst wird, soll diese Aufgabe öfters dran kommen, als die anderen.
Wenn sie ein Mal falsch war, dann vielleicht mit dem Faktor 1.1, bei zweimaligem falsch beantworten dann der Faktor 1.2 oder so.
Hat jemand eine Idee?

Ein Ansatz von mir war, dass ich in ein Array die Zahlen 1..20 rein schreibe.
Wenn nun die Aufgabe 7 falsch beantwortet wird, dann hänge ich die ID 7 an das Array dran und bestimme meine Zufallszahlen dann von 1..21 und wähle dann den Wert aus dem Array aus. Dann noch fix eine Abfrage auf die DB anhand der ID und schon kommt die Aufgabe 7 öfters dran.

Ich denke aber, dass es zu umständlich ist, oder?

Gruß, Dennis
 
Ich wuerde den einzelnen Matheaufgaben eine gewisse Wahrscheinlichkeit zuweisen, und dann z.B. mit Zufallszahlen von 1-100 oder so arbeiten. Wenn dann eine Aufgabe falsch geloest wurde wuerde ich den Zufallszahlennoch 10 Mehr Zufallszahlen zuweisen (dann mit 110 Zufallszahlen arbeiten), und der Falsch geloesten Aufgabe diese Zufallszahle zuweisen. War jetzt nicht als Loesungsvorschlag, sondern eher als anregung gedacht :) Hoffe ich konnte dich vielleicht zu einer Loesung inspirieren :)
 
Hi,

Ein Ansatz von mir war, dass ich in ein Array die Zahlen 1..20 rein schreibe.
Wenn nun die Aufgabe 7 falsch beantwortet wird, dann hänge ich die ID 7 an das Array dran und bestimme meine Zufallszahlen dann von 1..21 und wähle dann den Wert aus dem Array aus. Dann noch fix eine Abfrage auf die DB anhand der ID und schon kommt die Aufgabe 7 öfters dran.

Ich denke aber, dass es zu umständlich ist, oder?

Das ist eigentlich ein recht einfaches Verfahren, das soviel ich weiß auch in Bannerrotationsskripten gerne zum Einsatz kommt.

Eine Alternative findest Du z.B. auf php-einfach.de


Mehr findest Du mit dem Suchbegriff "gewichtete Zufallszahlen". ;)

LG
 
Zurück