0

抱歉,如果这个问题不适合该网站...我一直在尝试将一些 Maple 代码翻译成 Mathematica。我根本不了解 Maple,但我知道一些 Mathematica。我真的不知道我在做什么,所以我想知道是否有人可以帮助我一点:

b:= proc(n, s) local sn, m;
  if n<1 then 1
else sn:= [s[], n]; m:= nops(sn);
     `if` (m*(m-1)/2 = nops (({seq (seq (sn[i]-sn[j], 
          j=i+1..m), i=1..m-1)})), b(n-1, sn), 0) +b(n-1, s)
  fi
end:

a:= proc(n) a(n):= b(n-1, [n]) +`if` (n=0, -1, a(n-1)) end:

seq(a(n), n=1..30);

我想我什么都懂,除了

sn:= [s[], n];

但我不确定。提前致谢!

4

1 回答 1

1

索引调用返回如果是列表或集合s[]的条目序列。ss

对于slist 类型(特别是),调用的s[]行为类似于 call op(s)。(请注意,这种行为相似性适用于列表、集合和序列。但并非所有类型都适用。)

L:=[2,4,7]:

L[];

                        2, 4, 7
op(L);

                        2, 4, 7

[L[], 5];

                      [2, 4, 7, 5]

所以[s[], n]需要列表s并创建一个新列表。分配给 的新列表sn包含 list 的条目,s后跟n

于 2013-01-29T02:33:52.687 回答