Обсуждение участника:Mogikan — различия между версиями
Mogikan (обсуждение | вклад) (Новая страница: «<code> // b – список, содержащий разбиение данного числа, length – его размер. '''function''' nextPartition(va...») |
(нет различий)
|
Текущая версия на 20:32, 22 декабря 2013
// b – список, содержащий разбиение данного числа, length – его размер.
function nextPartition(var b:list): list;
var i : integer;
begin
b[length] := b[length] - 1;
b[length - 1] := b[length - 1] + 1;
if b[length - 1] > b[length] then
begin
b[length - 1] := b[length - 1] + b[length];
length := length - 1;
end
else
begin
i := 0;
while b[length - 1] * 2 <= b[length + i] do
begin
b[length + i + 1] := b[length + i] - b[length - 1];
b[length + i] := b[length - 1];
i := i + 1;
end;
length := length + i;
end;
return(b[1..length]);
end;