Seite 1 von 1

Zweipaare aus Liste generieren ohne Dopplung aus vorherigem Durchlauf

Verfasst: Donnerstag 22. April 2021, 19:13
von naheliegend
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

Re: Zweipaare aus Liste generieren ohne Dopplung aus vorherigem Durchlauf

Verfasst: Freitag 23. April 2021, 06:04
von noisefloor
Hallo,
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
Damit könnte ich also kontrollieren, ob sich Teilnehmer schon einmal getroffen haben oder nicht.
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.

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

Re: Zweipaare aus Liste generieren ohne Dopplung aus vorherigem Durchlauf

Verfasst: Freitag 23. April 2021, 19:32
von naheliegend
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.