Mathematica中的递归函数

500*_*500 2 recursion wolfram-mathematica function

考虑:

dist = Parallelize[
   Table[RandomVariate[NormalDistribution[]], {100000}]];
Run Code Online (Sandbox Code Playgroud)

我怎么能创建一个递归函数,以便:

Subscript[d, 1] = dist[[1]]

Subscript[d, 2] = .95 Subscript[d, 1] + dist[[2]]

Subscript[d, 3] = .95 Subscript[d, 2] + dist[[3]]
Run Code Online (Sandbox Code Playgroud)

直到做到这一点 Subscript[d, 100000]

谢谢.

令人惊讶的是,我第一次碰到这个.

Mr.*_*ard 6

考虑一下:

dist = RandomVariate[NormalDistribution[], {100000}];

dist2 = Rest@FoldList[0.95 # + #2 &, 0, dist];

Subscript[d, x_] := dist2[[x]]
Run Code Online (Sandbox Code Playgroud)

我通常不会这样使用下标; 我不知道这样做会破坏什么.如果您描述了更多问题,我可能会有其他建议.

  • +1用于在一次调用中生成所有100000个值,而不是使用"(并行)表". (2认同)