The Road to March Madness Starts Today

Today should be the best day of NCAA basketball until the tournament starts. This is an exciting time of year. Almost every top 25 team takes the court.

Over the last few weeks, I’ve worked on reincarnating my senior CS project, a sports ranking algorithm. I’ve reworked the code, added future game predictions and complete season modeling. Personally, I am surprised at the results, but I have to take what the computer tells me. Kansas ends the season ranked above two undefeated team, Kentucky and Virginia. I’ll have more on my season end predictions after today’s games.

The excitement starts at noon. After dropping two games, including a home loss, Duke travels to Louisville. Louisville lost a heartbreaker last week in the final seconds to UNC. I think this game might be the best game you could watch all season. Both teams have everything on line. Based on my calculations, Duke as a the slight advantage here, but that doesn’t take into account they are on the road. This game should come down to the final seconds again, this time Pitino should have his team ready. Louisville 88, Duke 86.

Another great game should be Utah at Arizona (7:00pm). I give Arizona the edge here.

Also tipping off at 7:00pm is Oklahoma at Oklahoma St. This game should be close down to the wire, but Oklahoma St. gets the edge, but only slightly (less than 1% separate these two).

Earlier in the day (4:00pm), my #1 Kentucky Wildcats travel to Alabama. Everyone is trying to find a way to slay the dragon Kentucky has built this year. On paper they are an 84% favorite, but given the recent OT games, Kentucky needs to come out strong to hold this edge. I theorized before there’s an underground meeting of SEC coaches plotting ways to defeat Coach Cal’s #1 team. I don’t think anyone will find the formula. Cal has a way of staying one step ahead when it’s needed. Kentucky takes this one down.

Outside of the top 25 and for the night owl’s out there, the 11:00pm game of BYU at St. Mary’s should be a thriller. My calculations have these two dead even.

Changing the Scale of a List of Numbers

I have a set of numbers, {2,3,2,4,5,10,9,9,7,12}, and I would like to change the scale. Want the lowest value to be a 1 and the highest value a 5, and the rest should map accordingly. Assuming I want to do this linearly, it’s as simple as two mx+b=c and solving for m and b.

Here’s the simple solution:

sH is the high bounds of the new scale.
sL is the low bounds of the new scale.
vmax is the max value in your original set.
vmin is the min value in your original set.
Using these values, calculate m and b:

m = (sH – sL) / (vmax – vmin)\r\n* b = sH – vmax*m
Now using the m and b values, find the scaled values for each item in your set:

m*orignalvalue + b = scaledvalue
Using my example set of {2,3,4,5,7,9,10,12} and scaling between 1 and 5.

m = (5-1)/(12-2) = 4 / 10 = 0.4
b = 5 – 12.4 = 5 – 4.8 = 0.2
x + 0.2 = y
Applying this to the original set, we end up with {1, 1.4, 1.8, 2.2, 3, 3.8, 4.2, 5}.

The Next Big Thing (in 2005)

I was cleaning out some older email boxes today and I ran across an email draft I never sent. It’s dated December 2005, which is almost a full year prior to the first release of the iPhone.

Scenario 1 – The Shopping Wizard: You are standing in XYZ TV Mart looking for an HDTV. You pull out your widget. It uses GPS to find out where you are. You enter what your looking for, either type of product, brand, model, etc. The widget goes out and looks for places within XX miles of your current location which currently have what your looking for instock. It also compares prices between the stores. ADDED BONUS – On demand discounts (your in XYZ and you search for Foo. ABC has FOO and is offering you a 10% off coupon, which is only valid for 30 minutes).

That was in 2005! I wish I spent more time working on my “crazy” ideas.

Update: If you are looking for such an application, I recommend check out ShopSavvy.