- Sampling equiprobably with dice
An illustrative example of how to compute with the probabilities associated to
dice, as well as the analysis of algorithms, is the following problem. Suppose you have a group of 19 individuals and an ordinary six-sided die. Your task is to use that die to select one of these individuals equiproabably, i.e. so that all individuals are equally likely, having probability 1/19 of being selected, and using as few rolls of the die as possible. This is an example of the more general problem of using dice to sample a range equiprobably, where the range has no common factor with the number of faces of the die, which is in turn equivalent to one of the key problems of the algorithmics of random number generators. This is because with today's hardware, even if a random number generator samples a physical source, it will need to load the sample into a "discrete" register consisting of a finite number of bits. Hence the question arises of how to sample equiprobably from a range not being a power of two using a random number generatorthat returns some fixed number of random bits.
The main result is that the expected number of rolls when an "n"-sided die is used to select equiprobably from a range "m" where and and the
discrete random variable"T" represents the number of rolls, obeys the bound:This article presents the basic concepts and a basic analysis of the problem. For a much more sophisticated treatment of the case , consult the article by H. Prodinger, who also discusses the problem in terms of leader electionon a network. (The reference is here).
Building the algorithm
First, we return to the case of an ordinary die and nineteen individuals. A moment's thought reveals that a bounded number of rolls of the die, say "k", will never suffice, as there is no way to distribute the values from one to nineteen among the possible outcomes so that all values are equally likely. We note, however, that if is large, and we use , where is the outcome, to choose the individual, the probabilities will be very close to , being perturbed only slightly by the remainder This suggests that we roll the die until the number of possible outcomes is at least nineteen, and take , if If however, we will need to roll the die again.
Recall that we require as few rolls of the die as possible. Therefore we should make use of the discarded outcomes that trigger another set of rolls, so as to not lose any valuable random bits. Each of these discarded outcomes may combine with any one of the outcomes of the next set of rolls, forming possible pairs. This finally suggests the following procedure. Introduce the variable , where "k" is the number of rolls, and set This is the sequence of remainders "r". Similarly, introduce the variable and set This is the index into the remainder interval if applicable. At every step, roll the die, obtaining a value "q" between zero and five, i.e. modulo six. Let and If , take and halt, otherwise, set and repeat.
This algorithm is actually quite simple. Roll the die. If the value obtained is below the remainder interval, take the value modulo nineteen. If not, use six times the remainder interval as the new available range. Roll again and combine with the previous index into the remainder interval to obtain an index into the new range, and repeat.
This procedure may be analysed in various ways. The simplest is to fix an individual and compute the probability of his/her being chosen. If this turns out to be , then the algorithm is indeed correct. With this in mind we introduce the probability of the individual being chosen after "k" rolls, and make use of the fact that the sequence of remainders must repeat with a period that divides , according to
Fermat's little theorem.
We find that:
This yields , so the algorithm is correct. In fact we have:
We introduce , the expected number of rolls after "k" rolls, in order to verify that the algorithm fulfills the requirement of needing few rolls. Using the same probabilities as above, we find that:
This yields so we need on average two and a half rolls of a six-sided die to select one of nineteen individuals equiprobably.
The same result may be obtained by introducing the
probability generating functiongiven by:and using the fact that:The correctness of this equivalent approach will be shown in the next section.
Analysis of the general case
The analysis of the general case, i.e. the expected number of rolls where an "n"-sided die is used to select equiprobably from a range "m" where and is very instructive, and serves to illustrate the techniques used in the manipulation of
discrete random variables.
Here it is useful to introduce an infinite
tree, consisting of internal nodes and of outdegree "n", where each level of the tree represents the possible outcomes after "k" rolls, the root being the initial state (zero rolls). We may think of the levels being divided from left to right into three zones, a blue zone, a green one, and a red one. The blue nodes represent outcomes that correspond to a halt after fewer than "k" rolls, the green ones, to a halt at the current level (exactly "k" rolls) and the red ones, to the remainder case (another roll is required). All children of the blue nodes are blue, as are children of the green nodes. There are red nodes, and of their children, are in red in turn, while are green. The number of green nodes is always a multiple of "m" and a fraction of of them correspond to a particular individual or value, thus showing by inspection that the algorithm samples the range equiprobably.
The three colors correspond to three sequences, and , where is the probability of having halted after fewer than "k" rolls, is the probability of halting after exactly "k" rolls, and is the probability of needing at least rolls. These sequences obey the following recurrences::as well as:
Let "T" be the random variable giving the number of rolls.The fact that is the probability of needing at least rolls may also be derived from the conditional probabilities of needing another roll at any time.:But so this is:
Using the definition of the
expected value, we find that:
Recalling the definition of , this becomes
Hence we need about two more rolls than to select equiprobably from "m" individuals using an "n"-sided die.
* Quim Testar, Antonio González, Marko Riedel, et al. Aleae iactae sunt, newsgroup es.ciencia.matematicas, In Spanish.
* Quim Testar, Antonio González, Marko Riedel, et al. Acotando el numero de tiradas de dado esperadas, newsgroup es.ciencia.matematicas, In Spanish.
* H. Prodinger, [http://math.sun.ac.za/~prodinger/postscriptfiles/loser.ps "How to select a loser"] , Discrete Mathematics, 120 (1993) 149-159.
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. " Introduction to Algorithms", Second Edition. MIT Press and McGraw-Hill, 2001. ISBN 0-262-03293-7.
Wikimedia Foundation. 2010.