先上一个代码,算法与应用内容后续补充。(留一个位子)
import numpy as np
O = '1635273524'
Pai=np.matrix([[1.0/3],[1.0/3],[1.0/3]])
B_prob = np.matrix([
[1.0/6, 1.0/6, 1.0/6, 1.0/6, 1.0/6, 1.0/6, 0, 0],
[1.0/4, 1.0/4, 1.0/4, 1.0/4, 0, 0, 0, 0],
[1.0/8, 1.0/8, 1.0/8, 1.0/8, 1.0/8, 1.0/8, 1.0/8, 1.0/8]
])
A_prob = np.matrix([
[1.0/3, 1.0/3, 1.0/3],
[1.0/3, 1.0/3, 1.0/3],
[1.0/3, 1.0/3, 1.0/3]
])
alpha1=np.multiply(Pai,B_prob[:,int(O[0])-1])
alpha2=np.multiply(np.transpose(np.transpose(alpha1)*A_prob),B_prob[:,int(O[1])-1])
result=np.sum(alpha2)
def question1(O,Pai,A_prob,B_prob):
alpha1=np.multiply(Pai,B_prob[:,int(O[0])-1])
for i in xrange(1,len(O)):
alpha2=np.multiply(np.transpose(np.transpose(alpha1)*A_prob),B_prob[:,int(O[i])-1])
alpha1=alpha2
print i
return np.sum(alpha2)
print question1(O,Pai,A_prob,B_prob)