Pythonで割り当て用のコードを書き込もうとしています。どこにも見つからないのは、何が間違っているのか、なぜ実行されないのかです。感知して動かすロボットの位置特定機能です。この行が機能しない理由がわかりません。
q.append(p[i] * (hit * sensor_right + (1 - hit) * (1-sensor_right)))
- ヒット = 2 つの文字列の比較。それは、1 または 0 である true または false に評価されますよね?
- センサー右 = 0.7
Traceback (most recent call last):
File "vm_main.py", line 26, in <module> import main
File "/tmp/sbdxfjuois/main.py", line 50, in <module> p = sense(p, measurements[k])
File "/tmp/sbdxfjuois/main.py", line 34, in sense q.append(p[i] * (hit * sensor_right + (1 - hit) * (1-sensor_right)))
TypeError: can't multiply sequence by non-int of type 'float'
私がここに投稿したものについて何か提案できますか?
def sense(p, Z):
q = [ ]
for i in range(len(p)):
hit = (Z == colors[i])
q.append(p[i] * (hit * sensor_right + (1 - hit) * (1-sensor_right)))
s = sum(q)
for i in range(len(q)):
q[i] = q[i]/s
return q