
Ejercicio: 2Eva2008TII_T1 Carrera de caracoles
Propuesta de solución en Python para dos caracoles A y B:
Cada caracol inicia en el punto de partida
A = 0
B = 0
t = 0
El movimiento de cada caracol se simula con un número aleatorio.
mueveA = int(rnd.random()*5)-1
A = A + mueveA
Algoritmo en Python
# 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
>>>
Algoritmo en Python
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
>>>