Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

For the uninitiated, LCR is a game in which each player starts with three "tokens" and rolls up to three dice (at most as many as tokens they have). Each die has three sides which indicate that nothing happens and one spot apiece for left, center, and right; left and right indicating that they pass one token in that direction and center indicating that a token goes to the "center," where it is removed from the game. The game ends when only one player has any tokens.

I was wondering what position would be best, so I created the following Python script to do this for me:

from random import *

def LCRRound(players):
    global playerset
    playerset = [3] * players
    while not GameOver():
        for player in range(len(playerset)):
            for i in range(min(3, playerset[player])):
            if GameOver():
    return [playerset.index(p) for p in playerset if p!=0][0]
def L(player):
def C(player):
def R(player):
def GameOver():
    return playerset.count(0) == len(playerset)-1
def Move(player):
    tmp = randrange(6)
    if tmp==3:
    if tmp==4:
    if tmp==5:

for x in range(2, 11):
    wins = [0] * x
    for y in range(100000 * x):

Which tests for randomly generated games with 2 to 10 players, playing 100,000 games for each player in each set (so 200,000 games for the two player tests, 300,000 for three, and so on up to 1,000,000 games for ten players). This generated the following output (and similar output other times I ran it), with the numbers being the number of times that player one (players are in order of who rolls):

[76233, 123767]
[91720, 98359, 109921]
[95913, 97396, 101796, 104895]
[96340, 97629, 99926, 103080, 103025]
[96985, 96768, 98607, 101509, 103283, 102848]
[97557, 96211, 97613, 100659, 102562, 103595, 101803]
[97636, 95984, 96652, 99220, 101364, 103619, 104070, 101455]
[98000, 95559, 96338, 97589, 99600, 102966, 104767, 104061, 101120]
[97355, 95754, 95876, 97163, 99303, 101537, 103103, 104583, 103943, 101383]

For two and three players, the optimal position is last. However, after that, the player who wins the most becomes the second to last and then the third to last (and would presumably continue in this motion as more players are added). This is contrary to what I expected, since I thought the optimal position would be the player immediately before, after, or opposite the starting player, but it is none of these. In face, the second player seems to be the most disfavorable rather than the person who starts. Which leads me to my question:

What is the mathematical explanation for what position is the best in LCR?

share|cite|improve this question
What is the meaning of your output? Is that the number of wins for each player? Also, is that random, or are you checking all possible dice rolls? – Mario Carneiro Dec 18 '12 at 2:23
@MarioCarneiro The output is the number of the games won for the player, with players listed in order of who rolls, and it is randomly generated. I updated the question to clarify. – MyNameIsNotMcThomasJohannson Dec 18 '12 at 2:28
up vote 1 down vote accepted

Intuitively, it is advantageous to be seated next to someone with lots of tokens; they're more likely to have some to give to you. So the last person is disadvantaged relative to the second-to-last person because they're next to the first person, who loses tokens earlier. Similarly, the first person is advantaged relative to the second person because the last person loses tokens later.

I don't have a proof that this is what's going on, but it seems to explain your data, and similar effects definitely show up elsewhere (e.g., most baseball statisticians claim you should bat your best player second and your worst player eighth for roughly these reasons).

share|cite|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.