algoritme opstellen

Moderators: dirkwb, Xilvo

Forumregels
(Middelbare) school-achtige vragen naar het forum "Huiswerk en Practica" a.u.b.
Zie eerst de Huiswerkbijsluiter
Reageer
Berichten: 1

algoritme opstellen

Het probleem is als volgt :

Op tornooien komen X aantal mensen opdagen, Dus X is variabel.

de ploegen worden samengesteld door trekking maar 'k wil dit automatiseren .

Er moeten ploegen samengesteld worden van 2 of 3 spelers volgens volgende regels

1° R = X mod 3

2° D : aantal doubletten = 6 - R

3° T : aantal tripletten : (x-2*D) / 3

Zo bekomen we een EVEN aantal ploegen waarvan we weten hoeveel doublettes ( 2 spelers) en hoeveel triplettes ( 3 spelers ) er moeten gemaakt worden.

Dan worden de spelers willekeurig ingedeeld volgens het aantal ploegen voor ronde 1.

Voor ronde 2, wordt opnieuw hetzelfde aantal doubletten en tripletten samen gesteld uit de X spelers. Maar !!!! de spelers die met elkaar spelen, mogen niet met elkaar gespeeld hebben in ronde 1 en de tegen spelers mogen ook niet tegendezelfde spelen.

Om het in een voorbeeldje te steken.

Stel in ronde 1 spelen nummer 1 - 7 - 12 tegen 13- 17 - 19

Dan mag ik ronde 2 de nummers 1 , 7 of 12 NIET indezelfde ploeg zitten en mag speler 1, 7, 12 niet uitgetrokken worden tegen een ploeg die speler 13, 17, 19

Voor ronde 3, analoog, maar de ploegen moeten zo samengesteld worden dat ze nog niet samen gespeeld hebben ,noch in ronde 1, noch in ronde 2. En ze mogen niet tegen elkaar gespeeld hebben in ronde 1 noch ronde 2.

Hopelijk is mijn probleem duidelijk.

Kan er mij iemand helpen om er een logica in te vinden , later kan ik het dan wel vertalen naar visual basic, maar ik moet eerst een goed algoritme vinden.

[edit door Miels: aub niet steeds vragen om "help aub" etc, zeker niet in titel]

Berichten: 96

Re: algoritme opstellen

Hoi Gunter,

Op zich een duidelijk probleem, maar niet zorgvuldig geformuleerd lijkt me. Stel b.v. dat X := #deelnemers = 6. Dan is de rest R := 6 mod 3 = 0 en D := 6-R = 6. Maar 6 doupletten, dat zijn 12 personen, terwijl er maar 6 zijn. Dat is een kwestie van een vw. voor X, maar dan nog het volgende. Stel nu b.v. dat X = 16. Dan is R = 1 en dus D = 6-1 = 5 en T = (16-2*5)/3 = 2. Er zijn dan 5 (doupletten) + 2 (tripletten) = 7 teams, dat is ONEVEN. Een beetje vaag...

Dan nog wat vragen:

1. Als personen die in eerder MET elkaar hebben gespeeld, mogen die in een vervolgwedstrijd wel TEGEN elkaar spelen?

2. Hoeveel wedstrijden worden er uiteindelijk gespeeld per teamspeler, is daar een grens aan of zoveel als dat er mogelijk zijn onder de voorwaarden die je stelt?

N.B. Deze reactie moet je niet beschouwen als dat ik ga helpen het algoritme te bedenken (want ik kom hier zelden), maar misschien dat de denktank hier plots ontwaakt...

Reageer