我需要根据数字a_t
和z_t
的旧序列创建数字a_0
的序列。 a_t
的定义等于27 if t=0
或a(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
,所以计算起来可能更快。
答案 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>