Составление распределений — различия между версиями
Материал из ALL
Строка 17: | Строка 17: | ||
[[файл:КОМ51.JPG]] | [[файл:КОМ51.JPG]] | ||
− | * Заметим, что для любого распределения сумма его элементов равна числу '''n'''. | + | * Заметим, что для любого распределения сумма его '''k''' элементов равна числу '''n'''. |
=== Пример === | === Пример === | ||
При '''n=6, k=3''' получаем 28 распределений: | При '''n=6, k=3''' получаем 28 распределений: |
Версия 11:44, 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 распределений:
Другие алгоритмы:
- составление перестановок;
- составление лексикографических перестановок;
- составление следующей перестановки;
- составление сочетаний;
- составление лексикографических сочетаний;
- составление следующего сочетания;
- составление размещений;
- составление лексикографических размещений;
- составление следующего размещения;
- составление разбиений;
- составление лексикографических разбиений;
- составление следующего разбиения;
- составление распределений;
- составление лексикографических распределений;
- составление следующего распределения.