About this program (the nuts and bolts)

So, you want to know how this wonderful little program works, do you? Well, you've come to the right place. Essentially, the program reads a file, sets up the tournament bracket, and simulates the matches.

However, "simulate" may not be the best word since the "simulations" are so simple. A random number is generated in a specified range. A certain part of this range is assigned to the first team, the rest to the second team. If the randomly generated number falls into the first team's range, the first team wins and moves on, and similarly for the second team. Then, the process repeats for the next rounds.

So, the important question now becomes, how do you determine which part of the range gets assigned to which team? There are many ways to do this. You could do 50/50, but then you'd have a lot of #16 seeds beating #1 seeds, and as of now, that hasn't ever happened (come on, the #1 teams are #1 for a reason). So, very simply, the higher seeds have more of the range assigned to them. This takes into account the general correlation of seed to skill, but there always lingers the possibility of an upset or two.

And that's really all there is to it.

About the comparator

One of the brilliant ideas I had would be to allow for comparing guesses to actual results. Basically, this just does simple file comparison. This will work for any generated file.

Note: If you want to create your own guess files, the comparator will work as long as it is formatted correctly (the easiest way to this is to edit the school's names in a generated file). However, the comparator is not smart enough to check whether your file contains a "valid bracket".

Example: If you really wanted Gonzaga to win in the first round game of Kentucky vs. Wake Forest, you could edit the file to show this, and the comparator wouldn't know any better. I have no intentions of adding this, it would be too much work for what amounts to user error and exceptional cases.

About guess files

Generated guess files are essentially lists of winners, there is no knowledge of who played or how we got there. Why? This is how brackets are represented and scored generally, it cuts down on file size, and makes comparing a lot easier. That's why!

Note to those who wish to create their own guess files: There is an order to the list of winners, it vaguely follows seeding and region. This is why I recommend editing generated files.

Why did I do this?

I decided it would be fun to combine two of my biggest obsessions, basketball and computers, into one project. Then, I thought, why not make it publicly available somehow? Then, I learned PHP, which is great for web programming. Then, I got my own webspace through the UW-Madison Comp Sci department servers. Then, the stars aligned one fateful night after several days of frantic coding and design and this program was born.

Why does this program like Duke so much?

Duke's consistently rated quite highly in the tournament. But yes, the Blue Devils seem to win a disproportionate number of these simulated tourneys. That's just the way the numbers pan out, I guess. It's not like I've rigged the program to favor Duke more than their seeding already has. Not only would that be far more difficult to do in the script than it's worth, it also would go against everything I believe in as something of a Duke anti-fan. It's just coincidence people.

Frequently asked questions?

As soon as people start asking me questions, I'll start posting them. Send mail to koczan[at]cs.wisc.edu should you like to make a contribution in the form of a question (like Jeopardy, but with no stuffy Alex Trebek).

Back to tourney index | Back to main index