As an Englishman living in Seattle, I am fascinated to watch how America chooses its presidential candidates. The US primary system seems slightly more reasonable than its English equivalent, where a few old party hacks basically just toss dice, but it still leaves a lot to be desired.
What confused me most is how in the early days of the contest, the press were full of exciting narratives. "Obama wins!" "Hillary makes stunning comeback!" But then I would look at the score and find both candidates exactly equal.
The problem is how the vote gets quantized when allocating delegates. Regardless of how many people vote, each congressional district has a limited number of delegates to hand out, and each delegate can only make a binary choice between candidates.
Many districts have 4 delegates, and there aren't that many ways you can divvy up 4. This means if two candidates are anywhere near closely matched, they will each get 2 delegates. For the result to come out anything other than exactly even, one candidate must get more than 62% of the vote.
Other districts have odd numbers of delegates. These have the opposite problem: it is impossible to produce a tie! If the vote is split 51/49, a district with 5 delegates would quantize that to 60/40.
In other words, there is little correlation between the popular vote and resulting delegate allocations. In districts with even delegate counts, there is likely to be a tie even if one candidate has a big win. The final victory is mostly decided by rounding errors in the districts that happen to have odd numbers of delegates.
As a computer programmer and geek, I find this baffling. Come on, people. This is 2008! We can afford more than 3 bits of precision for our choice of leader. Why not count with floats? Or doubles? Or go the whole hog and use System.Decimal?
The Republicans are even worse than the Democrats. They haven't made it as far as 3 bit counters yet, and are still working with boolean result codes. This does guarantee a definite winner, but I can't help thinking someone ought to teach them about fractions :-)