Go First Dice
ericharshbarger.org
ericharshbarger.org
1. Put consecutive numbered tiles in an opaque bag.
2. Each person reaches in and blindly grabs a tile.
3. Play proceeds in the order of tiles.
You can think of dice rolling as simple random sampling with replacement. It's naturally good at generating combinations. Drawing from a bag is random sampling without replacement. It's naturally good at generating permutations.
Using a system that generates combinations to generate uniformly distributed random permutations is a super fun mathematical exercise and I'm sure this brought plenty of joy to the authors. But if you're just trying to design a physical mechanism to generate permutations, it'll be an easier starting point if you do sampling without replacement.
In fact, if you do want to generate permutations with dice, a simple (but laborious) way to do it is:
1. Choose an arbitrary ordering for the players.
2. For each player, roll a die. If the value rolled is the same as any value rolled by a previous player, re-roll. Continue to re-roll until a unique value is rolled.
3. Play proceeds in the order of values each player rolled.
You'll probably want to use d20 or some dice with a large number of faces relative to the number of players in order to minimize collisions and re-rolling.
I'm not 100% certain, but I believe this will generate an unbiased ordering where the order of players in step 1 has no effect on the resulting order determined in step 3.
>We both understood that this was really a "solution looking for a problem" (there are plenty of perfectly acceptable ways to quickly determine who might go first in a game), but mathematically, wouldn't it be great if a set of dice could be created [...]
Now the slick proof for the case m > n is to add m-n extra "dummy" players. They get to pick after the n players have picked. By the above argument, we get a uniformly random permutation of the m total players, including the dummy players. But when we remove any subset of players from a uniformly random permutation -- in this case, the dummy players -- we are left with a uniformly random permutation on the rest.
A single die of <#players>! sides. 4 players = 24 sided die, each side has an order permutation. Impractical, but doable. Excepting for all the other arbitrary requirements.
This is all an elaborate exercise borne of someone's idle time, so it's best not to put too much into it. They already did that work.
This gives an advantage to earlier players because it gives them "first dibs" on higher numbers. In the extreme, if the first player rolls the highest number, no one can subsequently beat them no matter what they roll.
Of course, the article rules this out, and requires a single roll.
I can vaguely imagine a system where what the authors describe will come in handy. Let's say you have a group of n distributed agents that collaborate over multiple rounds, and they need to establish a fair order of precedence for each consecutive round. Let's say each agent issues a message each round, and a "counter" decides the order that those messages resolve.
In that case, you can (pre-)assign each agent a pseudorandom go-first die. They can tag their messages with the results of their go-first die, and the counter can now resolve the messages in a fair order.
If you publish the PRNG seeds for all agents, so that every agent has it, they can all be counters. This means that every agent will resolve the messages in a deterministic order every round, and over all the rounds, the processing will be fair. Seems like a useful property.
Ra is an example, but he uses it elsewhere. He's a math PhD who often writes in his books about how to break down these problems, and I wonder if he approached it the same way or reached the same conclusion.
There exist three dice where A beats B, B beats C and C beats A, statistically speaking. So if you consistently throw A and B, A has a higher chance of rolling a greater number than B, etc.
Kind of rock-paper-scissors, so whoever "goes first" and picks the die will (statistically) lose against a smart opponent who chooses second.
Wikipedia lists sets: https://en.wikipedia.org/wiki/Intransitive_dice
- Permutation-fairness is likely too strong of a condition at anything other than serious competitive tournaments. When playing a game casually, usually the group first sits down in a circle and then chooses someone to go first, taking turns clockwise from there; then if the method for choosing the first player is first-player-fair then it is also place-fair.
- Although having to sometimes resolve ties is annoying, there is one major benefit of choosing turn order by rolls of the same dice: You are guaranteed that any non-fairness in the dice do not affect turn order determination.
* Roll N sided die to decide first (result telling you which player in order is the first)
* Roll n-1 side die to decide second
* Roll n-2 side die to decide 3rd
* ...etc
Same amount of dice rolls, but dices at least can be used for something other than single purpose.
You roll two dice, and you have to decide which permutation to keep, and it gets added to your score. So, if I roll [3,1] then I can add 13 or 31 to my score. The aim is to take turns and get closest to 100 without going over, and you can pass your turn if you think you're close enough.
It can also be played with more dice, ie 1000, 10000, but it gets easier the more dice there are.
A similar argument shows player 5 rolls lowest 1414 out of 6^5, or only 18.2% of the time.
I don't have a good intuitive explanation though.
I'm not giving you a security exception to read your blog.
Let's Encrypt is free.
Free of financial cost perhaps, but not free of effort. Let's Encrypt is a pain to set up and maintain on a self-hosted website, if you don't maintain websites professionally and don't have experience.
People lament the centralization of the web, but this https-or-the-highway mantra is contributing to exactly that! Because there is a way to truly get https "for free", and it's to throw up your site on Github Pages or Squarespace. Or just use Facebook.
At least in FF there's a setting to force you to click through a full page warning to enable visiting a site without ssl. I use it, so I can be aware of my risks.