-1

我想使用 for 循环定义一个列表,我需要使用 n-iterate 的函数来完成它。我有:

初始化

In[176]:  Subscript[y, 0] = {1, 2, 3}

Out[180]:  {1,2,3}

功能:

In[181]:  F[n_] := For[l = 1, l++, l <= 3, Subscript[y, n + 1][[l]] :=Subscript[y, n][[l]]+ n]

我调用函数

F[0]

我得到:

In[183]:   Subscript[y, 1]

Out[183]:  Subscript[0, 1]

我应该有{1,2,3}

任何人都知道为什么它不能正常工作?

4

1 回答 1

0

我很难重新创建您的错误,问题。

我知道你想添加n到你的向量中,n下标的数字在哪里。

这是解决您的问题的另一种方法,避免循环和下标:

Clear@y;
y[0] = {1, 2, 3};
y[n_Integer] : =y[n - 1] + n

(按原样PlusListable您可以只添加n到向量中,避免使用For

然后使用例如调用它

y[0]
{1,2,3}

或者

y[5]
{16,17,18}

或者,使用 memoization,您可以定义y如下:

y[n_Integer] := y[n] = y[n - 1] + n

然后,这将存储已经计算的值(?y执行后检查,例如 y[5])。不要忘记Clear y,如果y发生变化。

显然,对于这样的功能,您可能需要考虑:

y[n_Integer] := y[0] + Total[Range[n]]
于 2013-05-12T12:08:49.400 回答