March Madness is coming up, and before I get into technical talk about your March Madness Tournament Bracket Chances let me just say the NCAA is pretty evil with the way they run sports. Basically, the coaches make ridiculous salaries higher than the president of the University. Title IX created an adverse effect on sports participation with dropping men’s programs like gymnastics and wrestling, which is actually a coed sport. On top of that, the football and basketball athletes work on a grueling schedule, and the college degree that they earn is a sufficient payment to them. Most people know that the big time college athletes are given breaks and take joke classes. The last case I heard of a potential high earning prospect got a respectable degree was David Robinson. I remember a couple years ago they showcased this one wrestler from Stanford in the NCAA Division I finals with a 3.9 something Mechanical Engineering GPA. Coaches love to use them as an example and their delusion that all student athletes are capable of doing such things without struggle. Their real job is football or basketball, and they are not paid a dime. If the pro hopefuls do not make it, they essentially lost 5 years in salary. I remember the school quarterback at the University of Colorado got busted robbing a house wearing a Scream mask about a year after his college career. He obviously didn’t get drafted by the NFL. It would be horrible decision for a high school player good enough to make it into the NBA rather than risk getting hurt playing college basketball on your $0 a year salary. Watch the video above to see John Oliver say it how it is.
Last year there was a lot of talk about Warren Buffet offering a billion dollars to anyone who can predict a perfect bracket. To the people who think they have a chance at picking a perfect bracket and winning one billion dollars, let me tell you something. To store all the individual NCAA bracket permutations in the simplest form (A binary number consisting of 67 ones and zeros) for March Madness, it would take
267 / 8 / 1000 / 1000 / 1000 = 18,446,744,100
terabytes. The internet consists of about 170 terabytes. We all know how big a terabyte is and this large number of terabytes happens to be higher than the number of seconds since the Big Bang! So go ahead and full out multiple brackets believing you are doing something productive. What is interesting is that all of these permutations can be represented in a data structure that would be less than one kilobyte. I could be wrong, but I believe a Suffix Tree would be the most efficient.
The last thing I would like to mention which may be off topic is programming speed. I happen to program in Python quite a bit. I can put things together in very few lines of code and it looks very clean. However, today I did an experiment to see how much faster C, unanimously considered the fasted structured programming language. The test was to add an integer from zero to one billion. I would assume that Python wouldn’t have an issue with running fast on a simple task. But boy was I wrong. First off I am running an iMac with Yosemite on a 3.1 gigahertz Intel Core i5 with 12 Gigabytes of DDR3 Ram. I used gcc to compile:
#include <stdio.h>
#include <time.h>int main() {
time_t start,end;
start=clock();//predefined function in cfor(int i = 0; i < 1000000000; ++i);
end=clock();
time_t t=(end-start)/CLOCKS_PER_SEC;
printf(“time: %ld”, t);
return 0;
}
Here is the Python code, which may hint why I like to write code in Python:
for i in range(0,1000000000):
pass
I was able to track the time using the -m cProfile option when running the script in terminal.
The C program ran in 2 seconds and the Python program ran in 42 seconds. The thing is, most of the time I don’t notice these things when writing code in Python, the scripts I write are probably ideal for Python.