Adapté un poco el código del profe para que no sea igual, la lógica sigue siendo la misma.
import numpy as np
estados = ["Soleado", "Nublado", "Lluvioso"]
matriz_transicion = [
[0.50, 0.35, 0.15], # Desde Soleado
[0.30, 0.40, 0.30], # Desde Nublado
[0.25, 0.40, 0.35], # Desde Lluvioso
]
estado_inicial = "Nublado"
numero_dias = 10
def obtener_indice(estado):
return estados.index(estado)
def predecir_clima(estado_inicial, numero_dias):
estado_actual = estado_inicial
pronostico = [estado_actual]
for _ in range(numero_dias - 1):
indice_actual = obtener_indice(estado_actual)
siguiente_estado = np.random.choice(
estados,
p=matriz_transicion[indice_actual]
)
pronostico.append(siguiente_estado)
estado_actual = siguiente_estado
return pronostico
pronostico = predecir_clima(estado_inicial, numero_dias)
print("=" * 40)
print(" PRONOSTICO DEL CLIMA - MONTEVIDEO")
print("=" * 40)
print(f"Estado inicial: {estado_inicial}\n")
for dia, estado in enumerate(pronostico, start=1):
print(f" Dia {dia:>2}: {estado}")
print("=" * 40)