I’m trying to code a Double Elimination tournament where the brackets are based on mod 4. The first round should handle all of the byes so that after round 2 there will be no more byes. I’m having a hard time trying to figure out the actual math behind determining the amount of byes I need. If anyone can help me with the math behind this it would be greatly appreciated.
There are 4 possible answers for anything mod 4 (0,1,2,3) I need to handle byes for 1,2,3.
An example of what I mean is
13 players so (13%4=1)
so the round 1 bracket should look like
1vs2
2vs3
3vs4
4vs5
5vs6
and round 2 is
7vs winner
8vs winner
9vs winner
winner vs winner and then you have the losers bracket
Basically if your familiar with the website Challenge, I want to generate my brackets similar to them, but I can’t figure out the math behind their determining of the byes.
If anybody has done something similar to this I would greatly appreciate his help.
Where
Nis the number of competitors, the number of rounds will be:The number of slots in the first round will be:
The top competitors get byes, so in your example, there are 13 competitors in the round of 16, so the top 3 competitors get byes. In other words, the number of byes are
firstRoundSlots - N.The order of the bouts is a little more complicated. Basically the idea is that the finals bout is the best competitor vs. the second-best competitor. In the semifinal, the best competitor squares off against the third best competitor, and the second best competitor squares off against the 4th best competitor. And so on and so forth. So it’s easiest to work backwards from the finals to generate the order.
However, if you want to know an algorithm for generating the bout orders in reverse (i.e., starting with round 1 and working your way towards the finals), I wrote a blog post about that here:
https://medium.com/@EthanRBrown/generating-a-direct-elimination-de-table-for-a-sporting-event-in-linear-time-2f50bbfa26d9