کسی اینجا پایتون بلده برای این کد کمک کنه؟

teraktor2003

کاربر تازه وارد
تازه وارد
#1
سلام
یه اموزش انلاین دارم دقیقا همین کد های زیر رو می زنه و منم می زنم ولی جواب من درست نیس!!!

کد:
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))
return q
print sense(p, Z)
جواب باید یه بردار باشه با اعداد [0.04,0.12,0.12,0.04,0.04]
اما بیشتر اوقات خطا می ده گاهی هم جواب رو فقط [0.04] می زنه!!!!
در حالت کلی این کد باید برای red ها 0.2*0.6 کنه و برای green ها 0.2*0.2

4 ساعته رو همین هنگم دارم دیوونه می شم
ممنون می شم کمکی کنید.
 

moslem.gh

کاربر تازه وارد
تازه وارد
#2
سلام
یه اموزش انلاین دارم دقیقا همین کد های زیر رو می زنه و منم می زنم ولی جواب من درست نیس!!!

کد:
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))
return q
print sense(p, Z)
جواب باید یه بردار باشه با اعداد [0.04,0.12,0.12,0.04,0.04]
اما بیشتر اوقات خطا می ده گاهی هم جواب رو فقط [0.04] می زنه!!!!
در حالت کلی این کد باید برای red ها 0.2*0.6 کنه و برای green ها 0.2*0.2

4 ساعته رو همین هنگم دارم دیوونه می شم
ممنون می شم کمکی کنید.
من فکر کنم حلقه for مشکل داره و احتمالا تمام دستوراتت در حلقه for قرار نداره و فقط مقدار آخر آرایه رو در z قرار می ده
یه کم در فرو رفتگیهای برنامه و اسکوپ حلقه for دقت کن شاید مشکلت حل بشه

Sent from my Nokia_X using Tapatalk
 
بالا