我目前正致力于编写递归算法。我用很多for循环创建了类似下面的函数。
def create_m_(y, m, theta, mc, theta_mc):
for i in range (len(data[0])-1):
m = create_m(y)[i]
theta = theta_m[i]
mc = create_mc(y)[i-1]
create_theta_mc[i-1]
m_ = (m * theta_mc + mc * theta + m * mc)
return m_
唯一的事情是:不会使用函数中的公式计算将启动循环的mc和theta_mc的初始值(这些初始值是特定情况)。如何设置循环以指定mc和theta_mc的第一个值?
编辑: 我可以这样做吗?
def create_m_(y, m, theta, mc, theta_mc):
for i in range (len(data[0])-1):
if i == 1:
m = m_2
theta = theta_m_2
else:
m = create_m(y)[i]
theta = theta_m[i]
mc = create_mc(y)[i-1]
create_theta_mc[i-1]
m_ = (m * theta_mc + mc * theta + m * mc)
return m_
答案 0 :(得分:1)
只需更改功能
即可def create_m_(y, m, theta, mc, theta_mc)
为:
def create_m_(y, m, theta, mc=initial_value, theta_mc=initial_value)
当您第一次调用此函数而未指定mc
或theta-mc
的值时,它们将默认为初始值。