Изменения

Перейти к: навигация, поиск

Получение следующего объекта

117 байт убрано, 20:43, 22 декабря 2013
Специализация алгоритма для генерации следующего разбиения на слагаемые
<code>
// b – массивсписок, содержащий разбиение данного числа, length – его размер. '''function''' nextPartition(var b:array[1..length] of integerlist): array[1..length] of integerlist;
'''var''' i : '''integer;'''
'''begin'''
b[length] := .set(b[length] .size,b.get(b.size) - 1); b[length .set(b.size- 1] := ,b.get(b[length .size- 1] ) + 1); '''if''' b[length .get(b.size- 1] ) > b[length] .get(b.size) '''then'''
'''begin'''
b[length .set(b.size- 1] := ,b[length .get(b.size- 1] ) + b[length].get(b.size)); length := length b.size(b.size- 1);
'''end'''
'''else'''
'''begin'''
i := 0; '''while''' b[length .get(b.size- 1] ) * 2 <= b[length + i] .get(b.size) '''do'''
'''begin'''
b[length + i + 1] := .add(b.get(b[length + i] .size)- b[length .get(b.size- 1])); b[length + i] := .set(b[length .size- 1]; i := i + ,b.get(b.size-1));
'''end;'''
length := length + i;
'''end;'''
return(b[1..length]);
'''end;'''
</code>
76
правок

Навигация