A Pair Of Dice Which Never Roll 7
by Simon Tatham
Introduction
Some friends of mine play the board game Settlers Of Catan. In this game, each player rolls two ordinary dice on their turn, and the number which comes up determines what resources people get for the turn. When a seven is rolled, something special happens: no resources are generated, and instead a robber moves on the board.
After playing this game for a while, my friends felt that although the game would get a bit dull without any sevens, they were rather unhelpful in the initial phase of the game: when everybody is trying to collect lots of resources to get started with, rolling a seven slows everyone down. So we adopted a "house rule" which said that during the first two full rounds, if anyone rolled a seven, they should immediately re-roll until they got something else. After a couple of rounds, once the game had got going, sevens became a permitted dice roll again.
Although I approve of the aim (to make the game get started more quickly), I didn't much like the mechanism; re-rolling a pair of dice until you get a result you like seemed ugly. So I set out to design a special pair of dice which would produce the numbers 2 to 12 with the same relative probabilities as the ordinary 2d6, but which never rolled 7.
This sounds pretty unlikely, but it's just about possible. In this page I explain how it's done.
Construction
An ordinary pair of dice can roll any number from 2 to 12, but not all with the same probability. The easiest way to see this is to label the individual dice to distinguish them (I'm going to call them R and C, for "row" and "column"), and draw a table showing the possible outcomes:
So out of the 36 possible combinations that can come up, only one results in a 2 (both dice have to show 1), only one results in a 12 (it requires two sixes), but a seven can come up in six different ways and is therefore six times more probable.
The idea I hit on was to reorganise this grid. With six entries reading 7, I thought it might be an interesting experiment to put them all in the same column:
That leaves a 5-by-6 square. Interestingly, we have to place 5 instances of the number 6 in the remaining space, and also 5 instances of the number 8. I thought those would fit nicely across two rows of this 5-by-6 rectangle:
This leaves a rectangle four spaces high, and it just happens that I have four 9s and four 5s to place, so let's place those in two of the columns:
And so it goes on. In two rows of the remaining 3-by-4 space we place the three 4s and the three 10s; in two columns of the remaining 3-by-2 we place the two 3s and the two 11s; and in the two remaining single spaces we place the single 2 and the single 12.
This reorganised grid contains the same set of numbers as the grid we originally started with, and each number appears exactly as many times in the new grid as in the original one. So if you roll two (distinguishable) ordinary dice, and look up the results in this table (for example, if die R rolled 3 and die C rolled 5, you'd look up the overall result in row 3 column 5 and find it was 4), then you will find that this technique gives you exactly the same distribution of numbers which you'd expect from ordinary dice.
Of course, having to use a look-up table every time you roll your dice is a bit silly. Better to re-label the dice to make the table unnecessary. And it turns out this is fairly easy:
- The entire first column of the table is full of 7s. So it makes sense to label that face of the C die "7", since if it comes up then the answer is 7 no matter what the other die does.
- The first two faces of the R die should be labelled "6" and "8", since that will be the result if one of those faces comes up (unless the C die shows 7).
- Similarly, the next two faces of the C die should be labelled 5 and 9, and so on.
- The last face of the C die we leave blank. If that face comes up, then the result is whatever is shown on the R die.
So after we relabel the dice, the outcome grid now looks like this:
Now all we need is a way to remember which numbers take priority over which other numbers. The rule is: 7 beats 6 and 8, which in turn beat 5 and 9, which beat 4 and 10, which beat 3 and 11, which beat 2 and 12, and everything beats the blank. So we add dots to the faces: six dots on the 7, five on the 6 and the 8, four on the 5 and the 9, three on the 4 and the 10, two on the 3 and the 11, one on the 2 and the 12, and nothing on the blank face.
So our dice now look like this:
And the procedure is: roll both dice, and choose whichever of the two uppermost faces shows more dots. (No draw is possible, since any two faces with the same number of dots appear on the same die.)
So, after all this work, I've constructed an alternative way of labelling a pair of cubical dice, which gives exactly the same probability distribution as the normal approach of adding up the two numbers rolled. How has this helped me to construct dice which don't roll sevens?
The answer is that 7 is now a property of one of the dice, rather than a property of the combination of the two. All I have to do to convert these dice into a non-7-rolling pair is to remove the 7 face from the C die, turning it into a five-sided die with faces 3, 5, 9, 11 and blank. This modified pair of dice has the following outcome table:
So it will roll everything other than 7 with the correct relative probabilities, but it can never roll a 7 itself, because there isn't a 7 face anywhere to be seen. Bingo!
Actually making a d5 would be difficult. Instead, I bought a standard d10 (two five-sided pyramids back to back), and painted pairs of faces the same.
Extension
The above construction fulfilled my original goal. I acquired some blank dice and labelled them in the way I've described (I couldn't find a blank d10 so I had to paint out the numbers on an ordinary one), and when I'd finished, I had two "odd" dice (one cubical, with a 7, and one shaped like a d10, without a 7) and one "even" die. Roll the two cubical dice, and you get an ordinary 2d6 distribution; roll the even die with the strangely shaped odd die, and you get the same thing but with no 7s.
However, there was one remaining problem. Settlers of Catan has an extension, called "Cities and Knights". In this game, one of the dice is red, and that die has a special function: the total of the two dice still determines the resource generation for the turn, but the single number shown on the red die has an additional effect of deciding who gets special cards. My dice don't provide this extra information. And you can't just roll an ordinary die alongside my two, because that gives rise to combinations which would have been impossible with ordinary dice (there's no way the red die can show 6 if both dice total 4, for example). So it appears that my dice can't be used for Cities and Knights without changing the nature of the game.
Or can they?
They can certainly work in principle. All you need to do is to annotate each entry in the outcome grid with an additional number indicating the value on the red die. Going back to the ordinary 2d6, the annotated grid looks like this (let's have R be the red die):
This grid isn't terribly easy to read, but it at least shows which red numbers can go with which total numbers:
- If the total is 2, the red number must be 1.
- If the total is 3, the red number can be 1 or 2.
- If the total is 4, the red number can be 1, 2 or 3.
- If the total is 5, the red number can be 1, 2, 3 or 4.
- If the total is 6, the red number can be 1, 2, 3, 4 or 5.
- If the total is 7, the red number can be 1, 2, 3, 4, 5 or 6.
- If the total is 8, the red number can be 2, 3, 4, 5 or 6.
- If the total is 9, the red number can be 3, 4, 5 or 6.
- If the total is 10, the red number can be 4, 5 or 6.
- If the total is 11, the red number can be 5 or 6.
- If the total is 12, the red number must be 6.
So what we could do is to take the outcome grid for my modified dice, and arbitrarily put these annotations in some order:
This works on paper: it generates both the total and the red number, with the same distribution as the original 2d6, and removing the 7 face on the C die still does the right thing. But it's ugly, because there's no particular structure to the arrangement of the red numbers in the grid, so we're back to needing a lookup table. It would be much nicer if we could find some way to arrange the red numbers which made it possible to figure out what was going on without a lookup table.
After some experimentation, I discovered that it all looks much nicer if you sort the faces of the dice into numerical order, counting "blank" as zero. This makes the totals grid look a lot less obvious:
But it produces an astonishingly simple way to arrange the red numbers. In this grid I'm going to show only the red numbers, to make it clearer just how simple this is:
I have honestly no idea whatsoever why this is so beautifully symmetric. My dice aren't symmetric; I've removed all the symmetry between the dice in the course of making my strange mechanism work. Yet, for no obvious underlying reason, this completely regular arrangement of red numbers just works, producing the right set of possibilities for every possible total. This was totally unexpected to me, and I still don't really understand it. But there it is.
So, given this arrangement, it's not too hard to find some extra labels to put on the faces of my dice. The simplest thing is to write red numbers on the faces of the even die, so that 2, 4, 6, 8, 10 and 12 are annotated with the numbers 1, 2, 3, 4, 5 and 6 respectively. Then we annotate the odd die as follows:
- The blank face remains completely blank, indicating that the red number on the even die is the correct red number.
- The 3 face is labelled "+1": you add 1 to the red number shown on the even die (6 is considered to "wrap round" and go back to 1.)
- The 5 face is labelled "+2": you add 2 to the red number on the even die (5 wraps round to 1, 6 wraps round to 2).
- The 11 face is labelled "-1": you subtract 1 (and 1 wraps round to 6).
- The 9 face is labelled "-2": you subtract 2 (1 goes to 5, 2 goes to 6).
- On this basis, the 7 face could be labelled "+3" or "-3", but since the only actual requirement is that every possible red number should be able to come up when the total is 7, the simplest thing is just not to annotate the 7 face at all. This breaks the beautiful symmetry of the table, but it's easier when actually rolling the dice.
So our completed dice now look like this:
Now the procedure is: roll both dice. To find the total, choose whichever of the two uppermost faces shows more dots. To find the red number, take the red number shown on the even (R) die, and modify it by the amount shown on the odd (C) die if any. If an addition takes you above 6, subtract 6 from the result; if a subtraction takes you below 1, add 6.
And, once again, removing the 7 face from the odd die produces a pair of dice which never roll 7, and this time they generate both totals and red numbers, so these could be used for Cities and Knights.
Evaluation
The mechanism I've described above works nicely on paper, but unfortunately it has a practical disadvantage, which is that it's unusually sensitive to imperfections in the dice.
The normal procedure of rolling 2d6 and adding the values together has the effect of spreading out the overall effect of an imperfection. Suppose you roll two normal dice, for example, and one of them is a bit more likely to roll a 3 than it should be. The effect on the overall distribution of the sum of both dice is that 4, 5, 6, 7, 8 and 9 are all more likely than they should be, but by one sixth as much, because the random value from the other die distributes the error over a wide range. So the normal procedure is naturally quite tolerant of faults (or even deliberate weighting) in the dice.
Not so with the mechanism I describe above. If the even die rolls 8 25% more often than 6, then 8 will come up 25% more often than 6 in the overall result; the whole of the error in one die is propagated to the overall result. And because Settlers treats every distinct roll of the dice as qualitatively different rather than just a bit more or less of a continuously varying quantity, minor imperfections in the dice have a severe and noticeable impact on the game play. In actual fact, since starting to play Settlers with my dice, we have been constantly annoyed by apparently unfair behaviour of the dice over the course of entire games; we haven't gone as far as doing actual statistical tests of my dice's accuracy, but it certainly seems possible that the phenomenon I describe here is to blame.
A really obvious alternative approach would have been to roll a d6 (labelled 1-6 as usual) and a d5 (also labelled 1-5 in the obvious way), add the results, and then add one if it was 7 or more. (This generates the Cities and Knights red numbers trivially, as well: simply let the d6 be the red one.) I initially discarded this approach because it felt inelegant; I wanted my dice to roll (say) a 9 by producing something which was obviously a 9, rather than producing something that looked like an 8 and requiring you to remember to convert it into a 9. (In particular, one manifestation of this elegance property is that with my mechanism the procedure for calculating the outcome is the same whichever of the two odd dice you're currently using.) Unfortunately, this inelegant approach might well have been more practical in terms of tolerating flawed dice.
A reader familiar with the range of dice available in roleplaying and gaming shops might also have noticed that a 5×6 outcome grid contains 30 possibilities in total, and that you can actually buy 30-sided dice, so taking a d30 and labelling it 2, 3, 3, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 8, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 11, 11, 12 would have been a simpler solution still. This might have been a bit fault-intolerant at the extreme ends of the range (with only one 2 face and only one 12 face, having a noticeable imbalance between them would be easy), but it would probably work acceptably in the middle of the range (which is where Settlers players seem to like to spend most of their time if they can arrange it) because with five separate 8 faces a significant imbalance would be harder to arrange. However, the real practical problem with this approach is that it's quite hard to find a d30 large enough to paint replacement labels on!
(comments to anakin@pobox.com)
(thanks to chiark for hosting this page)
(last modified on Sun May 7 14:33:22 2017)
from Hacker News https://ift.tt/3IgByDW
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.