anoniem Geplaatst: 13 februari 2008 Delen Geplaatst: 13 februari 2008 een aantal paren, a,b,...n bridged op een avond een aantal ronden 1,2,...n. Elk paar mag maar maar eenmaal tegen een ander paar per avond spelen. Als paar a met paar b heeft gespeeld mogen zij die avond in geen enkle andere ronde tegen elkaar spelen. Hoe is dit te organiseren/programmeren? :D Quote Link naar reactie
anoniem Geplaatst: 13 februari 2008 Auteur Delen Geplaatst: 13 februari 2008 Het aantal mogelijke samenstellingen is (n-1)!. Die boom kun je aflopen en in een array vastleggen. Daarna kun je per ronde de gebruikte mogelijkheden afstrepen. Quote Link naar reactie
anoniem Geplaatst: 13 februari 2008 Auteur Delen Geplaatst: 13 februari 2008 Stel: [i:666818c07c]n[/i:666818c07c] is oneven. Dan voeg ik een ploeg "vrij" toe. [i:666818c07c]n[/i:666818c07c] is nu even. Als een ploeg tegen ploeg "vrij" speelt is die ploeg die ronde vrij. Als [i:666818c07c]n[/i:666818c07c] oneven is elke ronde precies één ploeg vrij. Ik mag nu dus aannemen dat [i:666818c07c]n[/i:666818c07c] even is. Ik maak een functie [i:666818c07c]f[/i:666818c07c] van {1,2,...,[i:666818c07c]n[/i:666818c07c]} naar {1,2,...,[i:666818c07c]n[/i:666818c07c]} als volgt:[list:666818c07c][*:666818c07c][i:666818c07c]f[/i:666818c07c]([i:666818c07c]m[/i:666818c07c]) := [i:666818c07c]m[/i:666818c07c]+1als [i:666818c07c]m[/i:666818c07c] < [i:666818c07c]n[/i:666818c07c]-1 [*:666818c07c][i:666818c07c]f[/i:666818c07c]([i:666818c07c]m[/i:666818c07c]) := 1 als [i:666818c07c]m[/i:666818c07c] = [i:666818c07c]n[/i:666818c07c]-1 [*:666818c07c][i:666818c07c]f[/i:666818c07c]([i:666818c07c]m[/i:666818c07c]) := [i:666818c07c]n[/i:666818c07c] als [i:666818c07c]m[/i:666818c07c]=[i:666818c07c]n[/i:666818c07c][/list:u:666818c07c][i:666818c07c]f[/i:666818c07c] is een soort van rotatie waarbij [i:666818c07c]n[/i:666818c07c] op zijn plaats blijft. Ik maak een functie [i:666818c07c]g[/i:666818c07c] van {1,2,...,[i:666818c07c]n[/i:666818c07c]}*{1,2,...,[i:666818c07c]n[/i:666818c07c]} naar {1,2,...,[i:666818c07c]n[/i:666818c07c]} (een functie met twee argumenten) op de volgende recursieve manier:[list:666818c07c][*:666818c07c][i:666818c07c]g[/i:666818c07c]([i:666818c07c]m[/i:666818c07c],[i:666818c07c]0[/i:666818c07c]) := [i:666818c07c]m[/i:666818c07c] [*:666818c07c][i:666818c07c]g[/i:666818c07c]([i:666818c07c]m[/i:666818c07c],[i:666818c07c]k+1[/i:666818c07c]) := [i:666818c07c]f[/i:666818c07c]([i:666818c07c]g[/i:666818c07c]([i:666818c07c]m[/i:666818c07c],[i:666818c07c]k[/i:666818c07c]))[/list:u:666818c07c] [i:666818c07c]g[/i:666818c07c] is dus [i:666818c07c]f[/i:666818c07c]([i:666818c07c]m[/i:666818c07c]) [i:666818c07c]k[/i:666818c07c] keer toegepast. Laat [i:666818c07c]r[/i:666818c07c] de nummer van de ronde zijn (1 tot en met [i:666818c07c]n[/i:666818c07c]-1) en laat de ploegen genummerd zijn (1 tot en met [i:666818c07c]n[/i:666818c07c]). Omdat [i:666818c07c]n[/i:666818c07c] even is, is [i:666818c07c]n[/i:666818c07c]/2 een geheel getal. Laat de tafels genummert zijn met [i:666818c07c]u[/i:666818c07c] (1 tot en met [i:666818c07c]n[/i:666818c07c]/2). Op tafel [i:666818c07c]u[/i:666818c07c] speelt in ronde [i:666818c07c]r[/i:666818c07c] de ploegen met nummers[list:666818c07c][*:666818c07c][i:666818c07c]g[/i:666818c07c]([i:666818c07c]u[/i:666818c07c],[i:666818c07c]r[/i:666818c07c]) [*:666818c07c][i:666818c07c]g[/i:666818c07c]([i:666818c07c]n[/i:666818c07c]+1-[i:666818c07c]u[/i:666818c07c],[i:666818c07c]r[/i:666818c07c])[/list:u:666818c07c] Dit komt neer op het volgende: De tafels staan in een rij. Iedereen gaat aan een tafel zitten. Aan het eind van de ronde gaat iedereen die NZ (Noord Zuid) speelt een tafel naar "links" en iedereen die "Oost West" speelt een tafel naar "rechts". Één ploeg blijft de hele avond zitten. Als een ploeg een bepaalde richting niet meer opkan (ze zijn op de meest linkse tafel en ze moeten naar links, of andersom) dan verandert de windrichting: NZ wordt OW en andersom (voor die ploeg alleen). Als een ploeg aan een tafel moet zitten waar de ploeg zit die blijft zitten, dan schuift die ploeg nog een plaats op. Ik weet niet zeker of de uitleg iets toevoegt, maar misschien helpt het het algoritme te begrijpen. Quote Link naar reactie
anoniem Geplaatst: 13 februari 2008 Auteur Delen Geplaatst: 13 februari 2008 Dit lijkt me heel goed te gebruiken, bedankt. Nu nog ik dit in een programma kan omzetten, wens me succes Hartelijk dank Kees Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen