Struppi: Spielplan

Beitrag lesen

Ich hoffe Heute ist es auch möglich echte Probleme zu lösen.

Ich suche einen Algorithmus um einen Spielplan zu erstellen. Also ich habe eine x-beliebige Anzahl von Teilnehmern oder Teams und die sollen alle gegeneinander antreten.

Der Ansatz in Perl:

  
sub spielplan  
{  
    my $teams = shift;  
    die "$teams ist kein Array" unless ref $teams eq 'ARRAY';  
    my $anzahl_teams = scalar @$teams;  
    if($anzahl_teams % 2)  
    {  
        push @$teams , 'Spielfrei';  
        $anzahl_teams++;  
    }  
    my $anzahl_spiele =  ($anzahl_teams -1) * $anzahl_teams / 2;  
    my $tage = $anzahl_spiele / int($anzahl_teams / 2);  
    print "$anzahl_teams:$anzahl_spiele:$tage\n";  
  
    my %tage;  
    my @spiele;  
    my $count = 1; # nur zur Kontrolle  
    $anzahl_teams--; # wg. Index = 0  
    for my $i1 (0..$anzahl_teams )  
    {  
         for my $i2 (0..$anzahl_teams )  
         {  
              next if ( $i1 == $i2) or ($i2 > $i1);  
              print "$count.$i1-$i2\n";  
              push @spiele, [$i1, $i2];  
              $count++;  
         }  
    }  
    return;  
}

Jetzt hab ich in dem Array Spiele alle Paarungen (der Hinrunde).

Wie kann ich jetzt rausfinden, welche Spieltage möglich sind?

Es ist wohl irgendeine Art der Rekursion wobei jedes Spiel miteinander kombiniert werden muss und die Kombinationen, die die Anzahl der Paarungen pro Spieltag ergeben sind mögliche Spieltage.

Aber ich komm einfach nicht dahinter wie ich diese Programmieren muss.

Struppi.