none
Round Robin - Fußballturnier RRS feed

  • Frage

  • Hallo,

    ich habe bereits einen Code geschrieben der nach dem Round Robin Algorithmus alle Mannschaften kombiniert. Jetzt habe ich aber nur ein Fußballfeld zur Verfügung und möchte nicht dass Teams nacheinander Spielen.

    Nun habe ich das Problem, dass wenn ich eine ungerade Anzahl an Fußballmannschaften habe, und den Trick mit dem Dummyspiel mache und dieses Spiel einfach wieder lösche, dass dann Mannschaften nacheinander Spielen müssen, was nicht seien darf.

    Wie kann ich das umgehen??

    Montag, 14. November 2011 08:40

Antworten

  • Sicher, bei einer ungeraden Anzahl setzt immer eine Mannschaft pro Runde aus, das war mir jetzt allerdings zu trivial um es extra zu Erwähnen. Sonst ist es allerdings bei einem Rundenturnier (Round-Robin Tournament) genau so wie ich geschrieben habe, jede Mannschaft spielt in jeder Runde.

    Das deine Runde aus mehreren Spielen auf einem Spielfeld erfolgt ist ein Sonderfall. Deine Bedingung ist bereits bei drei Mannschaften nicht lösbar. Wenn ich es richtig überblicke tritt der Fall für ungerade Zahlen immer genau einmal auf.


    - Florian
    Donnerstag, 17. November 2011 09:26

Alle Antworten

  • Hallo,

    Ich programmiere in c# und habe Folgendes Problem :

    In einem Datagridview stehen alle möglichen kombinationen eines Truniers. Nun würde ich gerne wissen, wie man Zeilen tauscht. Weiterhin fehlt mir noch der Turnieralgorithmus. Also es sollten ja eine Mannschaft nicht 2 mal nach einander spielen und am besten auch nicht so lange auf ihr Spiel warten.

    Vielen Dank Mfg Karlos

    Mittwoch, 2. November 2011 10:32
  • Da fehlt das wichtigste Detail überhaupt: Welcher Modus? K.O., Doppel-K.O., Jeder-gegen-Jeden, Schweizer System..

    Warum überhaupt warten? Zu wenig Bowlingbahnen oder Fußballfelder? Ist die Spielzeit konstant oder nicht.

     

    Mittwoch, 2. November 2011 11:11
  • Ja stimmt, sry.

    Ein Spielfeld, Spielzeit konstant, Jeder gegen Jeden(Round Robin).

    Mittwoch, 2. November 2011 11:59
  • In dem Fall ist es relative einfach:

    Du hast für jeden Spieler/Team die Anzahl noch offener Spiele. Damit hast du den Wert auch für jede Paarung (Summe der Werte). Jetzt nimmst du einfach eine Paarung aus der Menge mit der höchsten Summe. Diese sortierst du vorher noch nach der vergangenen Zeit, die in dem Fall durch die Reihenfolge der Ergebniseingabe festliegt.

    • Als Antwort vorgeschlagen Horizon_Net Mittwoch, 2. November 2011 14:12
    • Nicht als Antwort vorgeschlagen Karlos.3Po Mittwoch, 2. November 2011 14:30
    Mittwoch, 2. November 2011 12:32
  • hmm.. so könnte ich es mal probieren! Gibt es denn noch andere Vorschläge?
    Mittwoch, 2. November 2011 13:26
  • Hallo Karlos,

    Du kannst es nicht umgehen, die Mannschaften spielen nunmal in jeder Runde. Ganz offensichtlich ist es beim Beispiel mit 3 Mannschaften. Wieso stellst Du die Frage hier, sie hat offensichtlich nichts mit C# zu tun?

     


    - Florian
    • Als Antwort markiert Karlos.3Po Montag, 14. November 2011 12:58
    • Tag als Antwort aufgehoben Karlos.3Po Montag, 14. November 2011 12:58
    Montag, 14. November 2011 11:36
  • Aber ab 5 Mannschafen muss eben nicht jeder in jeder Runde spielen..

    Ja naja ist ein Algorithmisches Problem keines dirket mit C#

    Montag, 14. November 2011 12:59
  • Hallo,

    und das wird eigentlich ganz gut in der Wikipedia beschrieben:

    http://en.wikipedia.org/wiki/Round-robin_tournament

    Gruß Elmar

    Dienstag, 15. November 2011 09:51
    Beantworter
  • Hallo Karlos.3Po,

    Vielleicht noch interessant für Dich: http://www.openligadb.de/Webservice/Description

    Grüße,

    Robert

    Dienstag, 15. November 2011 14:17
    Moderator
  • Sicher, bei einer ungeraden Anzahl setzt immer eine Mannschaft pro Runde aus, das war mir jetzt allerdings zu trivial um es extra zu Erwähnen. Sonst ist es allerdings bei einem Rundenturnier (Round-Robin Tournament) genau so wie ich geschrieben habe, jede Mannschaft spielt in jeder Runde.

    Das deine Runde aus mehreren Spielen auf einem Spielfeld erfolgt ist ein Sonderfall. Deine Bedingung ist bereits bei drei Mannschaften nicht lösbar. Wenn ich es richtig überblicke tritt der Fall für ungerade Zahlen immer genau einmal auf.


    - Florian
    Donnerstag, 17. November 2011 09:26
  • Hallo Karlos.3Po,

    Ich gehe davon aus, dass die Antwort Dir weitergeholfen hat.
    Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.

    Grüße,
    Robert

    Dienstag, 22. November 2011 10:33
    Moderator