对 Maple 中的最小值求和

Sum the minimum values in Maple

我在 Maple 中有一个列表 A := [3,1,7,2,4,9]

如何获得 n 最小值?

我需要对 n 个最小值求和,所以我想我应该使用类似

的东西
n := 3:
A := [3, 1, 7, 2, 4, 9]:
add( [ seq( min( A ), i=1..n) ] );

但它只会求和 1 + 1 + 1,因为最小值每次都是 1。我需要在第一次出现时删除最小值。

一个简单的方法是先排序A

restart;

A := [3,1,7,2,4,9]:
n := 3:

B := sort(A);
                       B := [1, 2, 3, 4, 7, 9]

add(B[i], i=1..n);
                                  6

如果某个值出现不止一次,您希望发生什么情况?

[编辑] 后续问题涉及如何从列表中删除 0。这里有几种方法。

restart;

A := [3,1,0,7,2,0,4,0,9]:

remove(x->x=0, A);

                    [3, 1, 7, 2, 4, 9]

remove(type, A, identical(0));

                    [3, 1, 7, 2, 4, 9]

map(x->`if`(x=0,NULL,x), A);

                    [3, 1, 7, 2, 4, 9]

顺便说一句,当非零值出现不止一次时,你没有阐明你想要做什么。