Ein Team hat beschlossen, dass jeden Morgen jemand Croissants für alle mitbringen sollte. Es sollte nicht jedes Mal dieselbe Person sein, daher sollte es ein System geben, das bestimmt, wer als nächstes an der Reihe ist. Der Zweck dieser Frage ist es, einen Algorithmus zu bestimmen, mit dem entschieden wird, wer morgen Croissants bringen soll.
Einschränkungen, Annahmen und Ziele:
- Wer an der Reihe ist, Croissants mitzubringen, wird am vergangenen Nachmittag festgelegt.
- An einem bestimmten Tag fehlen einige Personen. Der Algorithmus muss jemanden auswählen, der an diesem Tag anwesend sein wird. Angenommen, alle Abwesenheiten sind einen Tag im Voraus bekannt, sodass der Croissant-Käufer am vorherigen Nachmittag ermittelt werden kann.
- Insgesamt sind die meisten Menschen an den meisten Tagen anwesend.
- Im Interesse der Fairness sollte jeder Croissants so oft kaufen wie die anderen. (Nehmen Sie grundsätzlich an, dass jedes Teammitglied den gleichen Geldbetrag für Croissants hat.)
- Es wäre schön, ein Element der Zufälligkeit oder zumindest der wahrgenommenen Zufälligkeit zu haben, um die Langeweile eines Dienstplans zu lindern. Dies ist keine harte Einschränkung, sondern eher ein ästhetisches Urteil. Dieselbe Person sollte jedoch nicht zweimal hintereinander ausgewählt werden.
- Die Person, die die Croissants mitbringt, sollte dies im Voraus wissen. Wenn also Person P am Tag D Croissants mitbringen soll, sollte diese Tatsache an einem früheren Tag festgestellt werden, an dem Person P anwesend ist. Wenn zum Beispiel der Croissantbringer immer am Vortag bestimmt wird, sollte es eine der Personen sein, die am Vortag anwesend sind.
- Die Anzahl der Teammitglieder ist so gering, dass die Speicher- und Computerressourcen praktisch unbegrenzt sind. Zum Beispiel kann sich der Algorithmus auf eine vollständige Historie stützen, wer in der Vergangenheit Croissants gebracht hat. Bis zu ein paar Minuten Berechnung auf einem schnellen PC pro Tag wären in Ordnung.
Dies ist ein Modell eines realen Problems. Sie können die Annahmen also in Frage stellen oder verfeinern, wenn Sie der Meinung sind, dass sie das Szenario besser modellieren.
Herkunft: Finden Sie heraus, wer die Croissants von Florian Margaine kaufen wird . Meine Neuformulierung hat hier etwas andere Anforderungen.