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