Querdenkender Webworker mit WordPress-Affinität

Round Robin – Jeder gegen Jeden

Ich arbeite zur Zeit wieder vermehrt an der Bowling-Liga. Vor allem bei den Ligen soll sich etwas tun. Demnächst wird im BowlHouse in Berlin eine Liga gestartet, die etwa ein Jahr lauft und bei der jeder der 52 Teilnehmer gegen jeden anderen spielen soll. Dabei kann jeder Bowler selbst entscheiden, wann er die Spiele absolviert. Nur der Gegner steht eben fest. Dementsprechend ist also keine gerechte Verteilung der Bahnen notwendig und auf die üblichen Bahnbelegungstabellen kann verzichtet werden.

Ein Turnier dieser Art bezeichnet man auch als Round Robin und der zu verwendete Algorithmus trägt den gleichen Namen. Implementiert man diesen Algorithmus geht man üblicherweise davon aus, dass die Anzahl der Spieler gerade ist. Ist dem nicht so, wird ein so genannter Blindspieler mit in die Auswertung genommen, der als dienstbarer Geist die Aufgabe hat, immer gegen einen anderen zu verlieren.

Ein älterer Bookmark von mir bietet die Implementierung in JavaScript. In PHP sieht das Ganze dann so aus:

<?php

function getRoundRobinTable ($n) {
        $result = array ();
        if ($n % 2 == 0) {
                for ($r = 0; $r < $n - 1; $r++) {
                        for ($i = 0; $i < $n / 2; $i++) {
                                $result[$r][] = array (
                                        ($i == 0 ? 0 : ($r + $i) % ($n - 1) + 1),
                                        ($n - 1 + $r - $i) % ($n - 1) + 1,
                                );
                        }
                }
        }
        return $result;
}

?>

Die Funktion benötigt als Parameter einen geraden Zahlenwert. Geliefert wird immer ein Array. Im Fehlerfall (ungerader Zahlenwert) wird ein leeres Array zurückgeliefert.

Have fun!

Das könnte Dich auch interessieren:

Deine Meinung ist uns wichtig

*