我不明白行q.append(p[i] * (hit * pHit + (1-hit) * pMiss))
,因爲變量hit是一個布爾值。該布爾值來自hit = (Z == world[i])
那裏發生了什麼?我只對Python有一個基本的理解......仍在學習它的構造。不理解這個Python代碼塊。 boolean與float相乘?
p=[0.2, 0.2, 0.2, 0.2, 0.2]
world=['green', 'red', 'red', 'green', 'green']
Z = 'red'
pHit = 0.6
pMiss = 0.2
def sense(p, Z):
q=[]
for i in range(len(p)):
hit = (Z == world[i])
q.append(p[i] * (hit * pHit + (1-hit) * pMiss))
s = sum(q)
for i in range(len(p)):
q[i]=q[i]/s
return q
print sense(p,Z)
pMiss = 0.2還是0.4? –