Составление следующего разбиения — различия между версиями

Материал из 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'''.
+
* Заметим, что для любого разбиения сумма его элементов равна числу '''n'''.
 
== Другие алгоритмы: ==
 
== Другие алгоритмы: ==
 
*[[составление перестановок]];
 
*[[составление перестановок]];

Версия 10:34, 25 февраля 2016

Составление следующего разбиения — это алгоритм (комбинаторная операция) получения для разбиения следующего в лексикографическом порядке разбиения.

Обозначения

Введём обозначения:

n – натуральное число;

pjj-ое натуральное слагаемое;

mj – счётчик j-ого натурального слагаемого;

k – число натуральных слагаемых разбиения, равное сумме счётчиков;

{R1,R2,…,Rk} – разбиение числа n на k натуральных слагаемых.

Алгоритм разбиений

Входные данные: n; k; {R1,R2,…,Rk}.

КОМ45.JPG

Выходные данные: k; {R1,R2,…,Rk}.

  • Заметим, что алгоритм для лексикографически последнего разбиения даёт, как следующее, первое разбиение.
  • Заметим, что для любого разбиения сумма его элементов равна числу n.

Другие алгоритмы:

Ссылки