List 在maple中初始化数组

List 在maple中初始化数组,list,maple,List,Maple,我试图生成一个数组,包含从1到任意k的平方和。为此,我当前在循环中调用了另一个函数,如下所示: mylist[k]=函数(k),但不断出现越界错误。 如何在Maple中初始化给定大小(例如n)的数组?在Maple中,列表和数组不是一回事。列表是不可变的,而数组是可变的。对于短列表,Maple将允许您将条目作为数组“分配”给条目,这是一个时代错误。但是,这实际上是为了创建一个新的阵列,效率极低。这就是为什么,对于一个足够大的列表,您在尝试这样做时会看到一个错误 创建给定大小n的列表的一个正确方法是

我试图生成一个数组,包含从1到任意k的平方和。为此,我当前在循环中调用了另一个函数,如下所示: mylist[k]=函数(k),但不断出现越界错误。
如何在Maple中初始化给定大小(例如n)的数组?

在Maple中,列表和数组不是一回事。列表是不可变的,而数组是可变的。对于短列表,Maple将允许您将条目作为数组“分配”给条目,这是一个时代错误。但是,这实际上是为了创建一个新的阵列,效率极低。这就是为什么,对于一个足够大的列表,您在尝试这样做时会看到一个错误

创建给定大小n的列表的一个正确方法是使用seq命令,该命令创建一个序列

> [seq( i^2, i = 1 .. 10 )];
       [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
(您可以使用传递给使用此构造的过程的参数值,而不是文字上限“10”)。seq()调用周围的方括号([])将生成的序列转换为列表数据结构

如果您真正需要的是一个(可变的)数组,那么使用数组构造函数的方式也差不多

> Array( [seq(i^2,i=1..10)] );
       [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
不过,还有一种替代语法可以避免创建中间列表:

> Array( 1 .. 10, i -> i^2 );
       [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
(请注意,列表和数组的漂亮打印输出看起来是一样的;不要让这让您感到困惑。)

您应该能够将我在这里使用的平方映射(i->i^2)替换为对您自己的过程的调用