Hallo,
ich denke ich bin nicht der erste, der vor dieser Aufgabe steht.
Es gibt ein Treffen von Teilnehmer wo sie zufällig in Zweierteams eingeteilt werden. Es soll jedes mal aufs Neue so sein, dass sich nicht immer die selben zusammenfinden. Da ich das in Django baue, gibt es eine DB, wo ich beispielsweise jedem User aus einem Zweierteam für ein bestimmtes Treffen eine match_id gebe. Damit könnte ich also kontrollieren, ob sich Teilnehmer schon einmal getroffen haben oder nicht.
Gibt es dafür irgendetwas Fertiges? Algorithmus?
LG
Zweipaare aus Liste generieren ohne Dopplung aus vorherigem Durchlauf
-
- User
- Beiträge: 439
- Registriert: Mittwoch 8. August 2018, 16:42
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
Wenn jeder jeden genau einmal getroffen haben soll, bevor ein 2. Treffen stattfindet, dann musst du das anders machen. Also z.B. dir mit dem `collections` Modul die Paarungen voher berechnen lassen. Was natürlich voraussetzt, dass die Anzahl der Teilnehmer fix ist.
Wenn es um so Aufteilungen im allgemeinen geht (z.B. bei der Versuchsplanung), dann sind die mathemathischen Stichworte "lateinisches Quadrat" bzw. "orthogonale lateinische Quadrate", "lateinisch-griechisches Quadrat" und "Euler-Quadrat".
Gruß, noisefloor
Es gibt ein Treffen von Teilnehmer wo sie zufällig in Zweierteams eingeteilt werden. Es soll jedes mal aufs Neue so sein, dass sich nicht immer die selben zusammenfinden
Das ist in Teilen ein Widerspruch in sich. "Zufall" bedeutet ja _nicht_, dass sich z.B. heute und morgen auf keine Fall die selben Leute treffen. Zufall bedeute hier eher, dass sich bei hinreichend großer Anzahl von Treffen statistisch gesehen alle 2er-Gruppen gleich oft treffen.Damit könnte ich also kontrollieren, ob sich Teilnehmer schon einmal getroffen haben oder nicht.
Wenn jeder jeden genau einmal getroffen haben soll, bevor ein 2. Treffen stattfindet, dann musst du das anders machen. Also z.B. dir mit dem `collections` Modul die Paarungen voher berechnen lassen. Was natürlich voraussetzt, dass die Anzahl der Teilnehmer fix ist.
Wenn es um so Aufteilungen im allgemeinen geht (z.B. bei der Versuchsplanung), dann sind die mathemathischen Stichworte "lateinisches Quadrat" bzw. "orthogonale lateinische Quadrate", "lateinisch-griechisches Quadrat" und "Euler-Quadrat".
Gruß, noisefloor
-
- User
- Beiträge: 439
- Registriert: Mittwoch 8. August 2018, 16:42
Danke noisefloor. Also du hast natürlich Recht mit deiner Analyse. Ich hole nochmal ein bisschen weiter aus:
Also die Teilnehmerliste steht vor der Einteilung fix fest. Die Paare sollen so gewählt werden, dass möglichst noch nicht gepaarte Teilnehmer aufeinander treffen. Wenn es nicht anders geht, dann treffen sie sich zum 2. mal.
Also die Teilnehmerliste steht vor der Einteilung fix fest. Die Paare sollen so gewählt werden, dass möglichst noch nicht gepaarte Teilnehmer aufeinander treffen. Wenn es nicht anders geht, dann treffen sie sich zum 2. mal.
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"