Hello!
I've just stumbled upon this website and it seems that it's still kinda active!
And I'd really like to ask a question in "programming" but I can't since for some reasons I don't have permissions to it.
Could a mod or admin help, please?
---
I'll just post my question here as well just in case:
I have a tournament with <T> teams and <F> fields.
Each team needs to play vs each other exactly once.
A round consists of <F> matches since one mach can be played on one field.
Now I need an algorithm which generates the tournament table, where and when every team plays vs each other and so on.
Obvioulsy I know when <F> is smaller then <T> Teams / 2 some teams need to be on break each round.
I've tried to do two different things:
1. Basic round robin
I'll generate a basic round robin tournament, cut off the right most matches/fields which aren't available and append them at the bottom of the tournament.
Now this creates a rather uneven and long tournament (e.g. if you have 6 teams -> 3 fields for RR. But only 2 fields available, cut off the 1 field on the right and append it at the bottom). In that example however is the second field at the bottom not used at all and therefore relatively inefficient.
2. Random
I'll generate a list of all matches possible.
Pick one from that list, and create a round with still possible matches.
Continue till everything is filld.
If a round can't be filled completely, then shuffle the list and retry.
If that fails then restart the complete algorithm.
Which would work in some cases but end up running way too long since random is luck based.
Now my question:
Is there an algorithm for that?
Basically:
Have input variables: <T> Teams, <F> Fields
And generate a tournament table with most efficient rounds and least breaks.
Thanks!