Liga Management zum x-ten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Liga Management zum x-ten

    Hallo,

    sitze mit rauchendem Kopf über folgendem, in den Foren bisher nicht klar beantwortetem Problem:

    Erstelle einen Ligaspielplan mit 18 Mannschaften, 17 (34) Spieltagen mit jeweils 9 Spielen. So weit so gut.

    Ich habe zwar den Lösungsansatz, stehe aber wie ein Ochse vorm offenen Scheunentor und weiss nicht wie ich reinkomme; soll heissen:

    Ich weiss, dass ich per Polygon-Methode dahin komme, dass ich jede Mannschaft gegen die andere Spielen lassen kann und dabei auch gewährleiste, dass jede Mannschaft an jedem Spieltag nur einmal spielt sowie eine Begegnung zweier Mannschaften abgesehen vom Rückspiel (34 Spieltage) sich nur einmal ereignet.
    Bloß wie bekomme ich das in eine mathematische sprich php-programmiertechnische Formel? Hab da im mom nen totalen Blackout.

    Sollte eine konkrete Antwort im Forum schon vorhanden sein, bitte ich um entschuldigung, aber ich habe hier bisher nur Ansätze zu Lösungen gefunden die kein für mich im mom verwertbares Ergebnis bieten. Bei den meisten stand das Problem der Aufteilung der Begegnungen auf die einzelnen Spieltage im Vordergrund.

    Wer nähere Informationen benötigt was ich mit der Polygon-Methode meine, sollte sich mal diese Seite anschauen:

    http://nrich.maths.org/public/viewer.php?obj_id=1443

    Vielen Dank schonmal im voraus für eure Hilfe,

    prost Wilder
    Zuletzt geändert von WilderY2003; 28.01.2004, 18:13.

  • #2
    in der tat ist das thema nicht neu
    http://www.php-resource.de/forum/sea...der=descending
    Kissolino.com

    Kommentar


    • #3
      Liga-Management... Problem gelöst

      Hai Leute,

      nachdem ich meine Gehirnströme durch ein wenig Schlaf wieder in gerade Bahnen geleitet habe, habe ich das Problem gelöst.

      Trotzdem Danke für eure Aufmerksamkeit falls Ihr euch mit meinem Problem auseinander gesetzt habt.


      ciao Wilder

      Kommentar


      • #4
        hmm,

        dann poste auch die lösung. schließlich hab ich mich vorhin längere zeit mit deinem problem beschäftigt! (gedanklich)
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          Hai,

          na klar, hät ich auch selber drauf kommen können :-)

          also hier meine Lösung:

          Hier sind 18 Mannschaften ($b) als Beispiel.
          Das macht 17 Spieltage mit jeweils 9 Begegnungen.
          An keinem Tag Spielt eine Mannschaft doppelt, jede Mannschaft spielt genau einmal gegen jede andere.
          Diese Funktion funzt nur mit einer geraden Anzahl von Spielern/Mannschaften. Bei ungerader Anzahl muss ich mir nochmal Gedanken machen. ;-)

          PHP-Code:
          $b=18//anzahl mannschaften
          $c=0//Spieltag auf 1 gesetzt
          $w[0]=0// die erste mannschaft darf sich gemäß polygon methode nicht ändern
          $d=0//variable die man für die polygonmethode benötigt, verändert das array für heimmannschaften beginnend bei 0 abwärts also 0 - 17 - 18 usw.

          $e=1//variable die man für die polygonmethode benötigt, verändert das array für auswärtsmannschaften beginnend bei 1 aufwärts also 1 - 2 - 3 usw.
          for($c=0;$c<$b-1;$c++) { //spieltag
          for($i=1;$i<$b;$i++) { //mannschaft (1-17, 0 ist fest)
          $w[$i]=$i+$c//weist mannschaft den platz im array zu
          if($w[$i]>=$b$w[$i]=$w[$i]-$b+1//begrenzung des arrays damit nur nummer von 1-17 verwendet werden
          }
          for(
          $j=0;$j<$b/2;$j++) { // zuordnen der mannschaften am jeweiligen Spieltag
          $g $d-$j;
          $h $e+$j;
          if (
          $g<0$g=$g+$b;
          if (
          $h>=$b$h$h-$b;
          echo 
          "$w[$g]  vs.  $w[$h]  <br>" ;    
          }

          Viel Spass damit,

          prost Wilder
          Zuletzt geändert von WilderY2003; 16.02.2004, 14:41.

          Kommentar


          • #6
            habe

            Hi,

            habe das selbe Problem wie ihr und habe gerade wilders ideen versucht an mein Prog/Problem anzupassen, allerdings bin ich dabei jämmerlich gescheitert, vielleicht könnt ihr mir ja helfen, denn am 2 Spieltag kommt es dazu, das eine Mannschaft doppelt spielt zu Hause antritt, aber hier mein Code:

            $sql = "SELECT vereinsnr FROM $verein WHERE land LIKE '$land' AND liga=$liga ORDER BY vereinsnr";
            $query = mysql_db_query($db_name,$sql);
            $anzahl_vereine = mysql_affected_rows();

            $d=0;
            $e=1;
            $zugnr=3;
            //Hinrunde
            for($c=0;$c<$anzahl_vereine-1;$c++)
            {
            for($i=0;$i<=$anzahl_vereine;$i++)
            {
            //Index ermitteln
            $zahl=$i+$c;

            if($zahl>=$anzahl_vereine)
            $zahl=$zahl-$anzahl_vereine+1;

            //Vereinsnummern aus DB Array zuweisen
            $vereinsnr[$i] = mysql_result($query, $zahl);
            }
            for($j=0;$j<$anzahl_vereine/2;$j++)
            {
            $g = $d-$j;
            $h = $e+$j;

            if($g<0)
            $g=$g+$anzahl_vereine;

            if ($h>=$anzahl_vereine)
            $h=$h-$anzahl_vereine;

            echo "$vereinsnr[$g] gegen $vereinsnr[$h]<br><br>";
            }
            }


            Bitte helft mir, ich werde wahnsinnig.
            CU Jimbeambob

            Kommentar


            • #7
              leute.... es gibt die php-tags im forum. und die sollten auch genutzt werden!

              @WilderY2003 && @jimbeambob
              ändert eure posts. ich mache das nicht für euch.
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar

              Lädt...
              X