Составление следующего разбиения — различия между версиями
Материал из ALL
Строка 19: | Строка 19: | ||
Выходные данные: ''' k; {R<sub>1</sub>,R<sub>2</sub>,…,R<sub>k</sub>}.''' | Выходные данные: ''' k; {R<sub>1</sub>,R<sub>2</sub>,…,R<sub>k</sub>}.''' | ||
* Заметим, что алгоритм для лексикографически последнего разбиения даёт, как следующее, первое разбиение. | * Заметим, что алгоритм для лексикографически последнего разбиения даёт, как следующее, первое разбиение. | ||
− | * Заметим, что для любого разбиения сумма | + | * Заметим, что для любого разбиения сумма его элементов равна числу '''n'''. |
== Другие алгоритмы: == | == Другие алгоритмы: == | ||
*[[составление перестановок]]; | *[[составление перестановок]]; |
Версия 10:34, 25 февраля 2016
Составление следующего разбиения — это алгоритм (комбинаторная операция) получения для разбиения следующего в лексикографическом порядке разбиения.
Обозначения
Введём обозначения:
n – натуральное число;
pj – j-ое натуральное слагаемое;
mj – счётчик j-ого натурального слагаемого;
k – число натуральных слагаемых разбиения, равное сумме счётчиков;
{R1,R2,…,Rk} – разбиение числа n на k натуральных слагаемых.
Алгоритм разбиений
Входные данные: n; k; {R1,R2,…,Rk}.
Выходные данные: k; {R1,R2,…,Rk}.
- Заметим, что алгоритм для лексикографически последнего разбиения даёт, как следующее, первое разбиение.
- Заметим, что для любого разбиения сумма его элементов равна числу n.
Другие алгоритмы:
- составление перестановок;
- составление лексикографических перестановок;
- составление следующей перестановки;
- составление сочетаний;
- составление лексикографических сочетаний;
- составление следующего сочетания;
- составление размещений;
- составление лексикографических размещений;
- составление следующего размещения;
- составление разбиений;
- составление лексикографических разбиений;
- составление следующего разбиения.