start_probability = {'Rainy': 0.6, 'Sunny': 0.4}
transition_probability = {
'Rainy': {'Rainy': 0.7, 'Sunny': 0.3},
'Sunny': {'Rainy': 0.4, 'Sunny': 0.6},
}
emission_probability = {
'Rainy': {'walk': 0.1, 'shop': 0.4, 'clean': 0.5},
'Sunny': {'walk': 0.6, 'shop': 0.3, 'clean': 0.1},
}
v1 = start_probability.get('Rainy') * emission_probability.get('Rainy').get('walk')
Rainy = [v1]
v11 = start_probability.get('Sunny') * emission_probability.get('Sunny').get('walk')
Sunny = [v11]
array_1 = [v1, v11]
max_1 = 0
for i in array_1:
if i > max_1:
max_1 = i
for i in array_1:
if max_1 in Rainy:
print('Rainy')
break
if max_1 in Sunny:
print('Sunny')
break
v21_1 = v1 * transition_probability.get('Rainy').get('Rainy') * emission_probability.get('Rainy').get('shop')
v21_2 = v11 * transition_probability.get('Sunny').get('Rainy') * emission_probability.get('Rainy').get('shop')
v22_1 = v1 * transition_probability.get('Rainy').get('Sunny') * emission_probability.get('Sunny').get('shop')
v22_2 = v11 * transition_probability.get('Sunny').get('Sunny') * emission_probability.get('Sunny').get('shop')
max2 = 0
array = [v21_1, v21_2, v22_1, v22_2]
Rainy = [v21_1, v21_2]
Sunny = [v22_1, v22_2]
for i in array:
if i > max2:
max2 = i
for i in array:
if max2 in Rainy:
print('Rainy')
break
if max2 in Sunny:
print("Sunny")
break
v31_1 = v21_1 * transition_probability.get('Rainy').get('Rainy') * emission_probability.get('Rainy').get('clean')
v31_2 = v21_2 * transition_probability.get('Rainy').get('Rainy') * emission_probability.get('Rainy').get('clean')
v31_3 = v22_1 * transition_probability.get('Sunny').get('Rainy') * emission_probability.get('Rainy').get('clean')
v31_4 = v22_2 * transition_probability.get('Sunny').get('Rainy') * emission_probability.get('Rainy').get('clean')
v32_1 = v21_1 * transition_probability.get('Rainy').get('Sunny') * emission_probability.get('Sunny').get('clean')
v32_2 = v21_2 * transition_probability.get('Rainy').get('Sunny') * emission_probability.get('Sunny').get('clean')
v32_3 = v22_1 * transition_probability.get('Sunny').get('Sunny') * emission_probability.get('Sunny').get('clean')
v32_4 = v22_2 * transition_probability.get('Sunny').get('Sunny') * emission_probability.get('Sunny').get('clean')
max3 = 0
array3 = [v31_1, v31_2, v31_3, v31_4, v32_1, v32_2, v32_3, v32_4]
Rainy = [v31_1, v31_2, v31_3, v31_4]
Sunny = [v32_1, v32_2, v32_3, v32_4]
for i in array3:
if i > max3:
max3 = i
for i in array:
if max3 in Rainy:
print('Rainy')
break
if max3 in Sunny:
print('Sunny')
break
天气预测程序
最新推荐文章于 2024-06-04 17:30:51 发布