wrest, в общем случае порядок элементов в множестве не фиксирован. Если нужен порядок, то вместо множества нужно использовать список (list). Но в данном случае выполняется в Maple 15 по порядку.
Более точно смотри ниже (я добавил в b1 вывод: print (S = s) )
Код:
> b1:= proc(s, t) option remember;
local m, Sum, i, dt;
print(S = s):
m := nops(s):
if m = 0
then Sum := x^(t/2)
else
Sum:= 0;
for i in s
do
if i < m
then dt := 2^i
else dt := 0
end if;
Sum:= Sum + b1(s minus {i}, t + dt):
end do:
end if:
Sum:
end:
Код:
> for i from 1 to 3 do T(i) end do;
S = {1}
S = {}
1
S = {1, 2}
S = {2}
S = {}
1, 1
S = {1,2,3}
S = {2,3}
S = {3}
S = {1, 3}
S = {3}
S = {}
S = {1}
S = {}
1, 3, 1, 1
В Maple 15 зацикливания для n = 7 нет
Код:
> T(7);
1, 63, 31, 391, 15, 245, 115, 675, 7, 145, 69, 445, 31, 261, 115, 391, 3, 77, 37, 261, 17, 155, 69, 245, 7, 81, 37, 145, 15, 77, 31, 63, 1, 31, 15, 115, 7, 69, 31, 115, 3, 37, 17, 69, 7, 37, 15, 31, 1, 15, 7, 31, 3, 17, 7, 15, 1, 7, 3, 7, 1, 3, 1, 1
Аналогично для n =9, n = 11, n = 13. Дальше не проверял.