我一直在用Python制作模型,但我不明白我的错误在哪里
我的IDE说问题在于“规则1”,但我不知道为什么。我读过关于这个类型错误的文章,发现函数“range()”有帮助,但这给我带来了更多的问题。在那之后,我发现用“/”代替“/”会有所帮助,但没有任何改变。 我不确定我是否正确使用了这些解决方案,或者我的问题在代码中有不止一个错误。 提前感谢您的帮助
def model3(T,mu,alpha,beta):
d_3=np.zeros((3,3))
for h in range (T):
rew1=1
rew2=1
q1=0.5
q2=0.5
delta1=rew1-q1
delta2=rew2-q2
q1=q1+alpha*delta1
q2=q2+alpha*delta2
Q=range(q1+q2)
rule1=math.exp(beta*q1)//sum(math.exp(beta*(q1+q2)))
rule2=math.exp(beta*q2)//sum(math.exp(beta*(q1+q2)))
p=[rule1,rule2]
#Make choice according to choice probailities
c=random.choice(p)
#Generated reward
r_3=np.random.rand()
d_3[0,1]=1
d_3[0,2]=0
if c==p[0]:
m_3=mu[0]
d_3[1,0]=k[0]
else:
m_3=mu[1]
d_3[2,0]=k[1]
if r_3<m_3:
reward_3=1
if m_3==mu[0]:
d_3[1,1]=d_3[1,1]+1
else:
d_3[2,1]=d_3[2,1]+1
else:
reward_3=0
if m_3==mu[0]:
d_3[1,2]=d_3[1,2]+1
else:
d_3[2,2]=d_3[2,2]+1
return(d_3)
您的代码包含2个range()函数
及
range函数不能迭代浮点数,所以请尝试使用下面的代码行来解决您的问题
及
我认为问题在于这方面:
q1和q2都是浮点数,即使它们加起来是1.0-它仍然是浮点数,并且不能将
range()
与浮点参数一起使用编辑: 根据下面的评论,您可以尝试执行以下操作:
相关问题 更多 >
编程相关推荐