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