I do not understand the q.append(p[i] * (hit * pHit + (1-hit) * pMiss)) line q.append(p[i] * (hit * pHit + (1-hit) * pMiss)) because the hit variable is a boolean. This boolean comes from hit = (Z == world[i]) What happens there? I only have a basic understanding of Python ... Still studying its constructs.
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)
source share