Moin,
Folgendes technische Problem stellt sich mir:
Ich möchte ein CGI-Perl-Skript schreiben, dass einen Wochenplan erstellt.
______
Hintergrund:
Unser Abijahrgang organisiert einen Losverkauf, um unsere Jahrgangskasse aufzubessern. Wir sagen, jeder muss ca. 21 h Lose verkaufen. Ich habe die Schicht-Pläne immer per Hand ausgearbeitet, was ein Haufen Arbeit war (sehen, dass jeder gleich viel Stunden hat, Leute zusammensusetzen, die miteinander "gut koennen", insgesamt 63 Leute mit unterschiedlichen möglichen Zeiten verwalten etc.). Nun habe ich mir überlegt das man dies doch auch mit HTML / CGI erledigen könnte.
______
Ich habe ein Formular erstellt, das mehrere Sachen abfragt: Name der Orte, Zeit der einzelnen Schichten, Anzahl der Schichten pro Tag etc. Ferner wird nach einer Text-Datei gefragt, die als CSV eine Tabelle enthaelt, wann die Leute koennen, mit wem Sie nicht verkaufen, die Namen etc, und die dann ja auch ins Skript eingelesen werden kann.
______
Problem:
Jetzt ist mir folgendes Problem bewusst geworden: Wie erstelle ich den Wochenplan, so dass er gültig ist, also jedem die gleiche Anzahl Stunden zuordnet, nich eine Person 8 Stunden am Stueck verkauft etc. Meine (theoretische) Ueberlegung war: Durch eine Zufallszahl wird bei einiger beliebigen Person angefangen, bis alle Schichten vergeben sind. Falls dies "aufgeht", also kein Fehler auftritt, wird das Ergebnis zurueckgegeben, andernfalls mit einer anderen Zahl fortgesetzt.
Ich als relativer Perl-Neuling frage mich jetzt:
1. Ist dies die beste Loesung? (Laesst sich so etwas "eleganter" loesen als mit einer Zufallszahl etc.)
2. Braucht dieses Programm nicht viel Rechenzeit, da es so viele Schleifen durchlaufen muesste, bis es eine richtige Loesung findet?
Ich mache dies aus Spass an der Freude, es interessiert mich einfach. Die Plaene habe ich alle schon per Hand erledigt :*-(
Waere nett, wenn irgendjemand mir dies erklaeren koennte...
Danke im Vorraus!
Gruss,
Einbecker
p.s. fuer regional Interessierte: Es handelt sich um das Eulenfest, das naechstes Wochenende stattfindet. Kommt einfach mal vorbei, und kauft auch ein paar Lose! ;-)
pp.s. Danke, falls ihr bis hier hin gelesen habt!