nrparts:= function(n)
local np;
np:= function(n, m)
local i, res;
if n = 0 then
return 1;
fi;
res:= 0;
for i in [1..Minimum(n,m)] do
res:= res + np(n-i, i);
od;
return res;
end;
return np(n,n);
end;
nrparts(15);
176
p(n) n tamsayının ayrışım sayısı olmak üzere GAP kullanılarak yazılan p(15) için 176'yıveren Sayı Bölümlemesi(Number of partitions/Partition Integers) algoritmasının çalışma aşamalarını açıklamak istiyoruz.
n=1 yol:1 sayı:1
n=2 yol:1+1 ve 2 sayı:2
n=3 yol:1+2 ve 1+1+1 ve 3 sayı:3
n=4 yol:1+2+1 ve 1+1+1+1 ve 2+2+1 ve 1+3 ve 4 sayı:5
.......
1 2 3 5 7 11 15 22 30...176... bu sayede ayrışımları gerçekleştiriyoruz.
O halde yazılan algoritmanın adımlarını p(15)=176 için açıklamada yardımcı olur musunuz?
m değerinin ne olduğunu anlasam devamını getireceğim ama karar veremiyorum.