Ejercicio: 2Eva_IIT2008_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
Intrucciones 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 >>>
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 >>>