Jeder gegen Jeden
phillip
- php
0 Cheatah0 Eternius0 flashnfantasy
Hallo!
ich bin dabei eine liga in php zu programmieren. zur zeit ist mir jedoch ein kleines hinderniss im weg ;-)
also vereinfacht ausgedrückt: angenommen ich habe 5 zahlen 1,2,3,4,5 und ich möchte in zufälliger reihenfolge pärchen bilden, sodass "jeder gegen jeden" spielt.
also:
1:2
1:3
1:4
1:5
2:1
2:3
2:4
2:5
3:1
3:2
3:4
3:5
4:1
4:2
4:3
4:5
5:1
5:2
5:3
5:4
(und die eben noch in ihrer reihenfolge gemischt).
hat da jemand eine idee wie das gehen könnte? ich wäre euch sehr dankbar!!!
phillip
Hi,
also vereinfacht ausgedrückt: angenommen ich habe 5 zahlen 1,2,3,4,5 und ich möchte in zufälliger reihenfolge pärchen bilden, sodass "jeder gegen jeden" spielt.
fülle die Paarungen in ein Array (zwei for-Schleifen reichen, dafür dürfte sich eine Rekursion kaum lohnen) und sortiere dieses nach Zufall.
Cheatah
Hallo,
mit 2 inkrementierenden Schleifen?
for (zahl1=1;zahl1<irgendwas;++zahl1)
for (zahl2=1;zahl2<irgendwas;++zahl21) print zahl1.':'.zahl2
(ps. ich schätze, dass das kein PHP ist, was ich da hingeschrieben habe :]
gruss
Erstmal ein Hinweis aus der Mathematik:
es wird Binomialkoeffizient n über 2 Spiele geben, oder vereinfacht, (n*n-n)/2, wobei n die Anzahl der Teams sind.
Es gibt bestimmt eine Methode, jeder Zahl zwischen 1 und (n 2) ein Spiel zuzuordnen, aber ich halte es für einfacher, einen Array zu erstellen mit
comb = Array();
for (i = 1; i < (n*n-n)/2; i++)
for ( j = 0; j < i; j++)
comb[] = Array (i,j);
und dann mit
shuffle (comb);
mischen.
Gruß,
Mathias