Is it possible to have a league with an odd number of teams while making sure each team plays the same number of games?
You cannot make a schedule that would have both an odd number of matches per team and an odd number of teams, as the product of these is also odd. Since a single match counts for two teams, you can already see where the problem would lie.
As for making a schedule with an odd number of teams and an even number of matches, that is quite easy. Assign each team a unique random number from 1 to the total number of teams. Make the following schedule for round 1:
- 1 - x
- 2 - 17
- 3 - 16
- 4 - 15
- 5 - 14
- 6 - 13
- 7 - 12
- 8 - 11
- 9 - 10
To get a schedule for the next round, move all of the teams clockwise.
- 2 - x
- 3 - 1
- 4 - 17
- 5 - 16
- 6 - 15
- 7 - 14
- 8 - 13
- 9 - 12
- 10 - 11
Repeat as necessary. Notice that after each round, there is one more team that hasn't played a game. After an even number of rounds, there will be an even number of teams, which can then be assigned among each other.
A complete 6 game schedule, for example would look as follows:
- R1: R2: R3: R4: R5: R6:
- 1 - x 2 - x 3 - x 4 - x 5 - x 6 - x
- 2 - 17 3 - 1 4 - 2 5 - 3 6 - 4 7 - 5
- 3 - 16 4 - 17 5 - 1 6 - 2 7 - 3 8 - 4
- 4 - 15 5 - 16 6 - 17 7 - 1 8 - 2 9 - 3
- 5 - 14 6 - 15 7 - 16 8 - 17 9 - 1 10 - 2
- 6 - 13 7 - 14 8 - 15 9 - 16 10 - 17 11 - 1
- 7 - 12 8 - 13 9 - 14 10 - 15 11 - 16 12 - 17
- 8 - 11 9 - 12 10 - 13 11 - 14 12 - 15 13 - 16
- 9 - 10 10 - 11 11 - 12 12 - 13 13 - 14 14 - 15
To solve the extra rounds for the teams that got byes, make a matrix of played games between them:
- 1 2 3 4 5 6
- 1 x . x . x .
- 2 . x . x . x
- 3 x . x . x .
- 4 . x . x . x
- 5 x . x . x .
- 6 . x . x . x
As you can see, odd teams haven't played the even teams at all, and vice versa, so a trivial solution for the extra round is
- Rx
- 1 - 2
- 3 - 4
- 5 - 6
And there you go, a schedule, where every of the 17 teams has played 6 games against different opponents.
At this point I have to point out that I have no idea how this algorithm would perform when the number of rounds is more than a half of the number of the teams. I simply didn't check it. I do know that if you repeat the loop for N-1 times, it does give the full round robin tournament schedule where every team has played every other team once.
Articoli simili
- What is the most polite way to tell your contacts that you have a new cell phone number?
- Quali strumenti o software usano i team per la programmazione degli sprint? In particolare, quale membro del team sta lavorando su cosa?
- What teams have beaten the USA in men's basketball since 1960?
- I have a laptop with 1.1 GHz and 4gb RAM what kind of games can I run?