s2Eva_IIT2008_T1 Carrera de caracoles

Ejercicio: 2Eva_IIT2008_T1 Carrera de caracoles

Propuesta de solución en Python para dos caracoles A y B:

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 2Eva_IIT2008_T1 Carrera de caracoles
# solo dos caracoles

import random  as rnd

# INGRESO
meta = int(input('meta maxima: '))

# PROCEDIMIENTO
A = 0
B = 0
t = 0
while (A<meta and B<meta):
    mueveA = int(rnd.random()*5)-1
    A = A + mueveA
    
    mueveB = int(rnd.random()*5)-1
    B = B + mueveB
    
    t = t + 1

gana = 0
if (A>B):
    gana = 1
if (B>A):
    gana = 2
    
# SALIDA
print('ganó el caracol: ',gana)
print('tiempo transcurrido: ', t)

Resultado del algoritmo

meta maxima: 50
ganó el caracol:  2
tiempo transcurrido:  38
>>> 
meta maxima: 50
ganó el caracol:  1
tiempo transcurrido:  39
>>> 

Carrera para n caracoles use un vector e indices entre 1 y n

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 2Eva_IIT2008_T1 Carrera de caracoles
import random  as rnd
import numpy as np

# INGRESO
meta = int(input('meta maxima: '))
n = int(input('cuantos jugadores: '))

# PROCEDIMIENTO
# no se usa la posicion 0, caracoles entre[1,n]
posicion = np.zeros(n+1, dtype = int)

t    = 0
gana = 0
while not(gana>0):
    
    jugador = 0
    while not(jugador>=n):

        mueve = int(rnd.random()*5)-1
        posicion[jugador] = posicion[jugador] + mueve
        
        if (posicion[jugador]>meta):
            gana = jugador

        jugador = jugador +1
    
    t = t + 1

# SALIDA
print('posiciones finales:')
print(posicion)
print('ganó el caracol: ',gana)
print('tiempo transcurrido: ', t)

resultado de algoritmo

meta maxima: 50
cuantos jugadores: 5
posiciones finales:
[38 44 44 32 51  0]
ganó el caracol:  4
tiempo transcurrido:  39
>>> 
meta maxima: 50
cuantos jugadores: 5
posiciones finales:
[46 52 42 33 35  0]
ganó el caracol:  1
tiempo transcurrido:  36
>>>