Mailinglisten-Archive |
Hallo Mathias, danke für Deine Idee. Mein Ansatz ist nun folgender: ################################################################ Start -------------------- Berechne die Sekunden bis zum 1. Gewinn nach dem Startzeitpunkt anzahl_sekunden_bis_gewinn = (Zeitpunkt_Ende - Zeitpunkt_Start) / Anzahl_der_gesamt_Gewinne 1. Teilnahme (oder keiner hat bis jetzt gewonnen) -------------------- Ist der Zeitpunkt_Teilnhame >= Zeitpunkt_Start + anzahl_sekunden_bis_gewinn Ja, ist größer gleich: Gewonnen! Berechne erneut die Sekunden bis zum nächsten Gewinn nach diesem Gewinn: anzahl_sekunden_bis_gewinn = (Zeitpunkt_Ende - Zeitpunkt_Teilnhame) / Anzahl_der_noch_uebrigen_Gewinne Nein, ist ist kleiner: Verloren! Mache nichts weiter. ==================== 2. Teilnahme (angenommen die vorherige Teilnahme hatte gewonnen) -------------------- Ist der Zeitpunkt_Teilnhame >= Zeitpunkt_letzter_Gewinn + anzahl_sekunden_bis_gewinn Ja, ist größer gleich: Gewonnen! Berechne erneut die Sekunden bis zum nächsten Gewinn nach diesem Gewinn: anzahl_sekunden_bis_gewinn = (Zeitpunkt_Ende - Zeitpunkt_Teilnhame) / Anzahl_der_noch_uebrigen_Gewinne Nein, ist kleiner: Verloren! Mache nichts weiter. etc. ################################################################ Was meint ihr? Grüße Oliver Am 6. April 2011 14:59 schrieb Mathias Gloß (www.gmail.com) <mgloss at gmail.com>: > Aloha, > > Am 6. April 2011 14:19 schrieb Oliver Baran <obaran at gmail.com>: > > Ich möchte eine bestimmte Anzahl an (verschiedenen) Gewinnen in einer >> bestimmten Zeit gleichmäßig an eine unbestimmte Anzahl an Teilnehmern >> verteilen dabei darf es auch Nieten geben. >> Beispiel: >> Gewinn A: genau 500 zur Verfügung >> Gewinn B: genau 10 zur Verfügung >> Gewinn C: genau 5000 zur Verfügung >> Zeitraum genau 8 Wochen >> >> *Nun soll es so sein, dass die Gewinne über den gesamten Zeitraum >> relativ gleichmäßig verteilt ausgegeben werden. >> * > > > da hast du doch schon die Lösung :) > > >> Das "Nietengewicht" müsste also in Abhängigkeit von den Teilnehmern, >> den noch offenen Gewinnen und der Zeit stehen. >> > > Die Teilnehmerzahl an sich ist dann uninteressant, nur die Zeit ist > interessant. > > 8 Wochen sind *rechen* 8 * 24 * 60 * 60 Sekunden, das sollten also 691200 > Sekunden sein. > Gewinne hast du 5510, d.h. alle 691200 / 5510 = *125 Sekunden* gibts einen > Gewinn. > > Jetzt musst du das nur noch passend praktisch lösen und auf jeden Fall > sicherstellen, daß jeder 125-Sekunden-Gewinn: > a) nur einmal abgeholt wird > b) auf jeden Fall abgeholt wird > > a) lässt sich durch Sperren erledigen, b) durch < statt = beim Zeitvergleich > > > Grüße, Mathias > -- > ** Allgemeine deutschsprachige PHP-Liste: php at phpbar.de ** > Informationen: http://www.phpbar.de > http://lists.phpbar.de/mailman/listinfo/php >
php::bar PHP Wiki - Listenarchive