Составление распределений — различия между версиями

Материал из ALL
Перейти к: навигация, поиск
(Новая страница: «'''Составление распределений''' — это алгоритм (комбинаторная операция)…»)
 
Строка 10: Строка 10:
  
 
'''{R<sub>1</sub>,R<sub>2</sub>,…,R<sub>k</sub>}''' – распределение числа '''n''' среди '''k''' элементов.
 
'''{R<sub>1</sub>,R<sub>2</sub>,…,R<sub>k</sub>}''' – распределение числа '''n''' среди '''k''' элементов.
 +
 +
Основная идея алгоритма распределений числа '''n''' среди '''k''' элементов состоит в следующем: в получении разбиений числа '''n''' на не более, чем '''k''' слагаемых, добавлении нулевых слагаемых до '''k''' элементов и переборе перестановок с повторениями из '''k''' элементов.
 +
 
== Алгоритм распределений ==
 
== Алгоритм распределений ==
 
Входные данные: '''n; k.'''
 
Входные данные: '''n; k.'''

Версия 11:43, 3 марта 2016

Составление распределений — это алгоритм (комбинаторная операция) получения разложений числа n на k слагаемых, включая ноль.

Обозначения

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

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

t – порядковый номер распределения;

k – число элементов распределения;

{R1,R2,…,Rk} – распределение числа n среди k элементов.

Основная идея алгоритма распределений числа n среди k элементов состоит в следующем: в получении разбиений числа n на не более, чем k слагаемых, добавлении нулевых слагаемых до k элементов и переборе перестановок с повторениями из k элементов.

Алгоритм распределений

Входные данные: n; k.

КОМ51.JPG

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

Пример

При n=6, k=3 получаем 28 распределений:

КОМ53.JPG

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

Ссылки