Составление распределений — различия между версиями
Материал из ALL
Строка 1: | Строка 1: | ||
− | '''Составление распределений''' — это алгоритм ([[комбинаторика|комбинаторная]] операция) получения разложений числа '''n''' на '''k''' слагаемых, включая | + | '''Составление распределений''' — это алгоритм ([[комбинаторика|комбинаторная]] операция) получения разложений числа '''n''' на '''k''' слагаемых, включая нулевые слагаемые. |
== Обозначения == | == Обозначения == | ||
Введём обозначения: | Введём обозначения: |
Версия 11:51, 3 марта 2016
Составление распределений — это алгоритм (комбинаторная операция) получения разложений числа n на k слагаемых, включая нулевые слагаемые.
Обозначения
Введём обозначения:
n – натуральное число;
t – порядковый номер распределения;
k – число элементов распределения;
{R1,R2,…,Rk} – распределение числа n среди k элементов.
Основная идея алгоритма распределений числа n среди k элементов состоит в следующем: в получении разбиений числа n на не более, чем k слагаемых, добавлении нулевых слагаемых до k элементов и переборе перестановок с повторениями из k элементов для каждого разбиения.
Алгоритм распределений
Входные данные: n; k.
- Заметим, что для любого распределения сумма его k элементов равна числу n.
Пример
При n=6, k=3 получаем 28 распределений:
Другие алгоритмы:
- составление перестановок;
- составление лексикографических перестановок;
- составление следующей перестановки;
- составление сочетаний;
- составление лексикографических сочетаний;
- составление следующего сочетания;
- составление размещений;
- составление лексикографических размещений;
- составление следующего размещения;
- составление разбиений;
- составление лексикографических разбиений;
- составление следующего разбиения;
- составление распределений;
- составление лексикографических распределений;
- составление следующего распределения.