1
resposta

[Projeto] Cadeia Marvov

states = ["Ensolarado", "Nublado", "Chuvoso"] # Definindo os estados do clima

#Matrix

transition_matrix = [
[0.8, 0.15, 0.05], # De Ensolarado para [Ensolarado, Nublado, Chuvoso]
[0.2, 0.6, 0.2], # De Nublado para [Ensolarado, Nublado, Chuvoso]
[0.25, 0.25, 0.5] # De Chuvoso para [Ensolarado, Nublado, Chuvoso]
]

#Estado inicial
initial_state = "Ensolarado"
num_days = 10

#Função para obter o índice de um estado
def get_state_index(state):
return states.index(state)

import numpy as np

def predict_weather(initial_state, num_days):
current_state = initial_state
forecast = [current_state]

for _ in range(num_days - 1):
    current_index = get_state_index(current_state)
    next_state = np.random.choice(
        states, 
        p=transition_matrix[current_index]
    )
    forecast.append(next_state)
    current_state = next_state

return forecast


#Resultado

forecast = predict_weather(initial_state, num_days)

print(f"Estado inicial: {initial_state}")
print("Previsão para os próximos dias:")
for day, state in enumerate(forecast, start=1):

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Oi, Daniela! Como vai?
Agradeço por compartilhar seu código com a comunidade Alura.

O uso do np.random.choice() com as probabilidades da transition_matrix está correto e demonstra um bom entendimento sobre raciocínio probabilístico em ambientes incertos.

Uma dica interessante para o futuro é adicionar uma forma de calcular a frequência com que cada estado aparece na previsão, o que ajuda a entender a distribuição de probabilidade após várias simulações. Veja este exemplo:


from collections import Counter

contagem = Counter(forecast)
print(contagem)

Esse código usa o módulo collections para contar quantas vezes cada estado apareceu, permitindo analisar o comportamento da cadeia ao longo dos dias.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!