Para los no iniciados, LCR es un juego en el que cada jugador comienza con tres "fichas" y tira hasta tres dados (como máximo tantos como fichas tenga). Cada dado tiene tres caras que indican que no pasa nada y un punto cada una para la izquierda, el centro y la derecha; la izquierda y la derecha indican que pasan una ficha en esa dirección y el centro indica que una ficha va al "centro", donde se retira del juego. El juego termina cuando sólo un jugador tiene fichas.
Me preguntaba qué posición sería la mejor, así que he creado el siguiente script de Python para que lo haga por mí:
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])):
Move(player)
if GameOver():
break
return [playerset.index(p) for p in playerset if p!=0][0]
def L(player):
playerset[player]-=1
playerset[player-1]+=1
def C(player):
playerset[player]-=1
def R(player):
playerset[player]-=1
playerset[(player+1)%len(playerset)]+=1
def GameOver():
return playerset.count(0) == len(playerset)-1
def Move(player):
tmp = randrange(6)
if tmp==3:
L(player)
if tmp==4:
C(player)
if tmp==5:
R(player)
for x in range(2, 11):
wins = [0] * x
for y in range(100000 * x):
wins[LCRRound(x)]+=1
print(wins)
Que prueba partidas generadas aleatoriamente con 2 a 10 jugadores, jugando 100.000 partidas para cada jugador en cada conjunto (así que 200.000 partidas para las pruebas de dos jugadores, 300.000 para tres, y así sucesivamente hasta 1.000.000 de partidas para diez jugadores). Esto generó la siguiente salida (y una salida similar otras veces que lo ejecuté), con los números siendo el número de veces que el jugador uno (los jugadores están en orden de quien tira):
[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]
Para dos y tres jugadores, la posición óptima es la última. Sin embargo, después, el jugador que más gana se convierte en el penúltimo y luego en el antepenúltimo (y presumiblemente continuaría en este movimiento a medida que se añadan más jugadores). Esto es contrario a lo que esperaba, ya que pensaba que la posición óptima sería la del jugador inmediatamente anterior, posterior u opuesto al jugador inicial, pero no es ninguna de ellas. De cara, el segundo jugador parece ser el más desfavorable en lugar de la persona que comienza. Lo que me lleva a mi pregunta:
¿Cuál es la explicación matemática de qué posición es la mejor en LCR?
1 votos
¿Cuál es el significado de su producción? ¿Es el número de victorias de cada jugador? Además, ¿es aleatorio, o estás comprobando todas las posibles tiradas de dados?
1 votos
@MarioCarneiro La salida es el número de las partidas ganadas por el jugador, con los jugadores listados en orden de quien tira, y se genera aleatoriamente. He actualizado la pregunta para aclararlo.