Skocz do zawartości

Generowanie Terminarzu Spotkan - Algorytm


Radarek

Rekomendowane odpowiedzi

os nie moge sobie poradzic z takim o to problemem:

 

mam N druzyn [ponumerowanych od 1 do N ofcoz, N parzyste] i chce wygenerowac terminarz [kolejne kolejki od 1 do (N-1)] i pytanie jak to zrobic? :)

czy ktos moglby mi przedstawic gotowy algorytm? szukalem na google ale nie znalazlem zadnej odpowiedzi :/

 

dla przykladu, 4 druzyn to 3 kolejki i mamy:

I kolejka:

1 vs 2

3 vs 4

II kolejka:

1 vs 3

2 vs 4

III kolejka:

1 vs 4

2 vs 3

 

wydawalo mi sie to proste ale cos sie zacialem :)

 

jesli macie konkretny algorytm to prosze o przeslanie go na maila: [email protected]

Odnośnik do komentarza
Udostępnij na innych stronach

Innymi słowy chcesz napisać generator rozgrywek "każdy z każdym". Jeśli jest inaczej i chcesz coś ciekawszego (drabinka pojedyncza, drabikna podwójna - z tzw. drabinką przegranych) to daj znać. Algorytm dla każdego z każdym jest prosty.

Masz drużyny (niekoniczenie parzysta ilość): 1 2 3 4 5 6 7 8

Daje to dla n=8: (((n-1) + 1)/2)*(n-1) = 28

Teraz mając ilość meczy możesz to sobie jeśli chcesz podzielić na kolejki.

Mecze generujesz tak:

1 gra z 2, 3, 4, 5, 6, 7, 8

2 gra z 3, 4, 5, 6, 7, 8

3 gra z 4, 5, 6, 7, 8

...

7 gra z 8

 

Oczywiście jak 1 gra z 3, to tym samym 3 gra z 1, chyba, że istotny jest dla Ciebie podział na gości i gospodarzy. Niemniej jeśli w ten sposób (w prostych dwóch pętlach) sobie przelecisz po zespołach, to dostaniesz wszystkie mecze (każy z każdym). Potem możesz sobie podzielić to na kolejki. Możesz też już mając listę ustawić to tak, żeby zespół 1 nie grał na samymy początku wszystkich meczy.

(_acha_ → aha) ORT - żeby się nie zakopać w ten sposób, że będziesz chciał wystawić zespól który jest już zajęty, to dodając kolejne spotkania w danej rundzie, to możesz przeglądać wygenerowaną listę meczy po kolei, usuwać te które już zakolejkujesz, a jednocześnie w danej kolejce "odznaczać", że te zespoły już grają.

 

Mam nadzieję, że nie "namąciłem" za bardzo i sobie poradzisz :)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...