Randomness is a funny thing on a computer. While in the real world we would get together the leaders of tied subcaucuses and ask them to yell heads or tails while we flip a coin, we don’t actually have that opportunity in a computer program. SubCalc won’t hear anyone yelling heads or tails. What we really want, though, is simply a random decision about which of the tied subcaucuses will get remainder delegates. We’ve come up with a very different process in SubCalc, but we still call it a “coin flip” so that people understand it serves the same role.
In SubCalc we actually assign every subcaucus what we call a “randomRank” right when the subcaucus is created. Imagine this as asking each subcaucus leader to draw a straw as soon as they name their subcaucus. Each straw is a different length, and the subcaucus with the longest straw will get the first remainder in the event of a tie with another subcaucus. See, no “coin flips” to speak of, just a pre-assigned randomRank (straw) handed out at the beginning.
When you ask SubCalc to “flip the coin again” it actually just assigns new randomRanks to each subcaucus. This is as if you had asked each one to draw a new straw. Sometimes that results in the same order, sometimes the order of the randomRanks (the straws) will change. This is much like a coin flip, sometimes it comes up heads again, sometimes not.
We save the randomRanks with other data about each subcaucus so that when you quit SubCalc (or get a phone call on your iPhone, interrupting SubCalc) it won’t forget the order of the “straws” for the next time it has to calculate the results.
Feel free to address questions about this or any other aspect of SubCalc’s inner workings to us via email or the comments below.
Leave a Comment
You must be logged in to post a comment.
