在maple中初始化数组

时间:2015-01-22 22:03:43

标签: list maple

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

1 个答案:

答案 0 :(得分:2)

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

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

> [seq( i^2, i = 1 .. 10 )];
       [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

(而不是文字上限“10”,你可以使用传递给你使用这种结构的过程的参数的值。)seq()调用周围的方括号([])转换结果序列成列表数据结构。

如果您真正需要的是(可变)数组,那么以相同的方式使用Array构造函数。

> 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)替换为您自己的程序。