Then I thought to myself, how did the professor get there? USA today does not go into the details. I wonder what the odds are of finding real math in USA today on a given today? Probably slimmer than 1 in 1 million. I'll point out that precision does not matter when we're finding astronomically long odds. I'll call this a ballpark estimate. With probabilities this small, the upshot is that you'll never win. It's worse than playing lotto.

Let's do some math. Sixty-four teams compete in the NCAA tournament. There are six rounds, including the final game. So we have 32+16+8+4+2+1 = 63 games played. In order to fill out a perfect bracket, I have to choose 63 winners correctly. If we were flipping a coin, there are

But we are not flipping a coin. Suppose you're a savvy odds maker. You know which teams are ranked highest in the tournament. You study basketball statistics, etc. I will quantify your savvy thusly: you have a 90% probability of picking a winner of 16 games in the first round. You have a 90% probability of picking a winner of 16 games in the second round. Your probability of picking all the other winners is 50/50, the same as flipping a fair coin. What is your probability of filling in the bracket correctly? You have to correctly choose 63 mutually exclusive events with a probability of .9 for 32 of them, and .5 for the other 31. Since the events are mutually independent, the individual probabilities multiply. That gives us a final probability of

or odds of

This is roughly twice as much probability as the DePaul math professor estimated. So, my hypothetical savvy guesser had roughly twice as much savvy, but he is still hopeless when it comes to filling in the bracket correctly.

Here is some R code to calculate and print the numbers here. We're right on the edge of R's basic precision, where p could be rounded down to zero. If I change the numbers slightly, I would need to use the Rmpfr package (or logarithms) to get a non-zero printout.

> p=c(0.9,0.5) > games=c(32,31) > prob=prod(p^games) > prob [1] 1.598934e-11 > 1/prob [1] 62541682939 > format(1/prob,dig=3,sci=T) [1] "6.25e+10"