Dejo el código, me gusta como se predice en bade al random para que sea dinamico el ejercicio.
import numpy as np
estados = ["Soleado", "Nublado", "Lluvioso"]
matriz_transicion = [
[0.8, 0.15, 0.05],
[0.2, 0.6, 0.2],
[0.25, 0.25, 0.5]
]
estado_inicial = "Soleado"
numero_dias = 10
def obtener_indice_estado(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(estado_actual)
probabilidades = matriz_transicion[indice_actual]
siguiente_estado = np.random.choice(
estados,
p=probabilidades
)
pronostico.append(siguiente_estado)
estado_actual = siguiente_estado
return pronostico
pronostico = predecir_clima(estado_inicial, numero_dias)
print("*" * 50)
print("PREDICCIÓN DEL CLIMA - CADENA DE MARKOV")
print("*" * 50)
print("Estado inicial:", estado_inicial)
print("Días:", numero_dias)
print("Pronóstico:", pronostico)