编写递归函数

时间:2018-11-13 13:27:11

标签: python recursion

我需要根据数字a_tz_t的旧序列创建数字a_0的序列。 a_t的定义等于27 if t=0a(t-1)exp(z(t-1)) for t>=1。我什至不知道怎么写的是python。这是一个尝试

i=0
a_t=[]
a_0=27
z_t = pred_values
for x in pred_values:
   a_t.append(a_0*exp(x))
   i+=1

这是编写递归函数的正确方法吗?

更新1

我搞砸了代码。一旦使用a_0,就需要使用a_t。例如,如果我想使用a_2,那么显然我们将需要使用a_1。有没有适当的方法可以对该函数进行编码?

更新2

似乎可以仅使用a_0,并且将总和覆盖z_t-1, z_t-2, ..., z0,而不用等待a_t-1计算a_t。因此,有可能对计算进行矢量化处理,而不是一个接一个地计算a_i。您是否愿意为我提供以下numpy选项,即a_t = a_0 exp(sum(z_i))代表i=0 to t-1?因为我们已经知道序列z_t,所以计算起来可能更快。

1 个答案:

答案 0 :(得分:1)

定义这种序列的一种直接方法是使用生成器。

declare variable $input-string as xs:string external := 'INTERNATIONAL MOBILE SUBSCRIBER IDENTITY = 001010000000597 TEMPORARY MOBILE SUBSCRIBER IDENTITY = N ACTIVATION STATUS = A';

analyze-string($input-string, '(.+?) = (\S+)')//fn:match
!
<item>
    <paramName>{ normalize-space(fn:group[@nr = 1]) }</paramName>
    <paramValue>{ normalize-space(fn:group[@nr = 2]) }</paramValue>
</item>