Entwickler-Ecke

Sonstiges (.NET) - [C#] Algorithmus: Jeder gegen Jeden


Nandiny - Di 20.11.07 19:03
Titel: [C#] Algorithmus: Jeder gegen Jeden
Hallo zusammen,

ich grüble an einem Algorithmus, der folgendes machen soll:
Es ist ein Spielplan, bei dem zu Beginn die Anzahl der teilnehmenden Teams und die Namen der Teams eingegeben werden.
Dann werden die Teams in z.B 2 Gruppen eingeteilt.

Jetzt sollen die Teams in einer Gruppe Jeder gegen Jeden spielen.

Bei z.B. 3 Teams pro Gruppe werden also 3 Spiele gespielt => (n*(n-1))/2 .
Team 1 - Team 2
Team 1 - Team 3
Team 2 - Team 3

Ich komme aber einfach nicht drauf, wie der Algorithmus dazu aussehen muss. Kann mir vielleicht jemand helfen??

Danke schön schon mal


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Di 20.11.2007 um 18:08


Jann1k - Di 20.11.07 20:12

hab keine Ahnung von C# aber so würds in delphi gehen:



Delphi-Quelltext
1:
2:
3:
 for I:=1 to anzahlmannschaften do 
   for J:=I+1 to anzahlmannschaften do
       //mannschaft nr. I gegen mannschaft  nr. J



brauchst also nur zwei ineinandergeaschachtelte for-schleifen, du hast dann aber das Problem, dass mannschaft 1 nacheinander gegen alle anderen spielt.


Nandiny - Di 20.11.07 21:20

Ja ich habe es jetzt so gelöst. Musste noch die Gruppenanzahl beachten



C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
             for (int i = 0; i < anzahlGruppen; i++)
             {
                 Console.WriteLine("Gruppenspiele der {0}. Gruppe:\n", i+1);

                    for (int j = 0; j< teamsProGruppe-1;j++ )
                    {                        
                       for (int m=j+1; m<teamsProGruppe; m++)
                       {
                           Console.WriteLine("{0} - {1}", gruppen[i,j], gruppen[i,m]);
                           
                       }

                    }
              }


Danke schön

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt