9 comments

[ 2.9 ms ] story [ 30.7 ms ] thread
the title is a classic quant interview problem

the basic idea is that, because multiplication commutes, probability of A then B is the same as probability of B then A, so long as they are independent events (rolling objects typically meets this criteria)

so instead of using just A or just B, which might neither have 0.5 probability, you only count "A then B" and "B then A" as rolls

and this trivially extends to constructing a fair N-sided die out of any arbitrarily biased die for any N

(comment deleted)
Hey hey, it's Keenan Crane again :)
How to create a fair coin from an arbitrarily biased coin:

1. Toss the coin and remember the answer.

2. Toss the coin again, if it is different from your previous toss then your result from #1 is fair. Otherwise, go back to step 1.

If p is the probability of getting heads, there are four possible outcomes with their associated probabilities:

    TT -> (1 - p)^2   (rejected)
    HT -> p * (1 - p)
    TH -> (1 - p) * p
    TT -> p^2         (rejected)
Needless to say, p * (1 - p) and (1 - p) * p have an equal probability, so if we don't reject our two tosses, we have a fair outcome.
VN extrator is a specific case of a more general idea: When you independently (hard assumption of VN extractor) draw M times with N possibilities then you can extract entropy from their permutation.

Assign some scheme for converting permutations to an index.

Then get uniform bits out, maintain two variables: one is the product of the number of permutations, the other gets multiplied by the number of permutations and the index added. Whenever the number of possibilities is divisible by two, output the LSB of the index accumulator and halve the number of possibilities.

Size up your groups and accumulators and you can get arbitrarily high extraction rates.

Doing it efficiently and in constant time (e.g. without divisions) is the more exciting trick. A colleague and I managed an extractor for the binary case that packs takes 10+3N multiplies and N CTZs to pack N bits (giving an exact invertible encoding when bits choose ones is < 2^64).

The question I have is how stable are the probabilities over time? My guess is traditional dice are more physically robust to wear and degrade more gracefully.
It does not seem to be so useful and practical to use strange shapes for dice; the common shapes, with numbers (or other symbols that are applicable for the game you are playing) on each side, will probably be more useful, anyways. However, it might be interesting.

Another reason to use dice for tabletop games is so that the game can be played without the use of a computer.

When I play GURPS, I generally use different dice with each dice roll in order to try to mitigate some of the bias. (I don't know quite how much effective this really is, though.)