/ Forside / Karriere / Uddannelse / Højere uddannelser / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Højere uddannelser
#NavnPoint
Nordsted1 1588
erling_l 1224
ans 1150
dova 895
gert_h 800
molokyle 661
berpox 610
creamygirl 610
3773 570
10  jomfruane 570
Turneringsplanlægning
Fra : Michael Knudsen


Dato : 05-01-06 16:17

Hej!

Lad os sige, at vi skal planlægge en skakturnering med N spillere,
hvor alle spillere skal møde hinanden netop en gang. Er f.eks. N=4,
kunne vi have følgende rundelægning

4 2 3
3 1 4
2 4 1
1 3 2,

hvor første række betyder, at spiller 1 i første runde møder
spiller 4, i anden runde spiller 2 og i sidste runde spiller 3.
Tilsvarende for de følgende rækker.

En simpel måde at lægge runder på (for N lige) er beskrevet på:

http://en.wikipedia.org/wiki/Round-robin_tournament

Den går i al sin enkelthed ud på, at man i eksemplet ovenfor skriver
spillerne op på følgende måde:

1 2
4 3.

Heraf læser man, at 1 møder 4, og at 2 møder 3. Man holder nu
spiller 1 fast og roterer de øvrige med/mod uret. Mod uret giver det
følgende:

1 3
2 4

1 4
3 2.

Vi får på denne måde rundelægningen som i eksemplet.

Jeg har implementeret algoritmen i Java, og for N=6 får man følgende:

6 2 3 4 5
5 1 4 6 3
4 6 1 5 2
3 5 2 1 6
2 4 6 3 1
1 3 5 2 4.

Her er "startopstillingen" givet ved

1 2 3
6 5 4.

Spiller 1 holdes fast, og der roteres mod uret.

Der findes tilsyneladende andre måder at planlægge sådan en
turnering på. Kigger man f.eks. på side 176 i "Skakhåndbogen" (se
http://www.dsu.dk/dsu-dok/skakhand/2005/shb-14-0.pdf), vil man opdage,
at rundelægningen for 4 spillere passer med den ovenfor, men for 6
spillere er resultatet

6 2 3 4 5
5 1 6 3 4
4 5 1 2 6
3 6 5 1 2
2 3 4 6 1
1 4 2 5 3.

Rundelægningerne ser også ud til at afvige for N>6. Er der nogen, der
kender andre algoritmer? Jeg har forsøgt at modificere algoritmen fra
Wikipedia ved bl.a. at ændre den spiller, der holdes fast, men jeg har
ikke haft heldet med mig.

Med venlig hilsen
Michael Knudsen


 
 
Jens Peter Rosenkvis~ (06-01-2006)
Kommentar
Fra : Jens Peter Rosenkvis~


Dato : 06-01-06 20:55

Michael Knudsen wrote:
>
> Rundelægningerne ser også ud til at afvige for N>6. Er der nogen, der
> kender andre algoritmer? Jeg har forsøgt at modificere algoritmen fra
> Wikipedia ved bl.a. at ændre den spiller, der holdes fast, men jeg har
> ikke haft heldet med mig.

Jeg har ikke kigget nærmere på de algoritmer du nævner, så vil ikke
komme med ændringer til dem. Her er en metode jeg selv er kommet frem
til. (Sandsynligvis nogen der har fundet på det tidligere).

http://www.jensercube.dk/usenet/turnering.htm

Først opskriver du holdene som vist i først tabel.

I felterne over krydserne udregner du de to holdnumre lagt sammen og
derefter modulo holdantal -1.

Hvis der eksempelvis er 6 hold og de er feltet hvor hold 2 og 4 møder
hinanden udregner du (2+4) modulo (6-1) = 6 modulo 5 = 1. Du skriver så
et i feltet. Dette gør du for alle felterne over krydserne, bortset fra
sidste række.

I sidste række skal du udregne det første holds nummer*2 modulo
(holdantal -1).

Hvis der er 6 hold og det er hold 3 imod hold 6 bliver det: (2*3) modulo
(6-1 ) = 6 modulo 5 = 1.

Når du er færdig med at udfylde denne tabel angiver den, hvilken uge
(eller runde om du vil), de to hold skal møde hinanden i.

Denne fremgangsmåde vil fungere for alle antal af hold, så længe det er
lige. Hvis der er et ulige antal af hold, kan du blot tilføje et hold
under udregningerne som du fjerne til sidst. Hvert hold vil da sidde
over netop en runde.

Håber tabellerne på siden hjalp, og at det blev en forståelig forklaring.

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408526
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste