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

Материал из ALL
Перейти к: навигация, поиск
м
 
(не показано 10 промежуточных версий этого же участника)
Строка 1: Строка 1:
'''Составление распределений''' — это алгоритм ([[комбинаторика|комбинаторная]] операция) получения разложений числа '''n''' на '''k''' слагаемых, включая ноль.  
+
'''Составление распределений''' — это алгоритм ([[комбинаторика|комбинаторная]] операция) получения разложений числа '''n''' на '''k''' слагаемых, включая нулевые слагаемые.  
 
== Обозначения ==
 
== Обозначения ==
Введём обозначения:
 
 
 
'''n''' – натуральное число;
 
'''n''' – натуральное число;
  
Строка 11: Строка 9:
 
'''{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''' слагаемых, добавлении нулевых слагаемых до '''k''' элементов и переборе перестановок с повторениями из '''k''' элементов для каждого разбиения.
  
 
== Алгоритм распределений ==
 
== Алгоритм распределений ==
Строка 17: Строка 15:
  
 
[[файл:КОМ51.JPG]]
 
[[файл:КОМ51.JPG]]
* Заметим, что для любого распределения сумма его элементов равна числу '''n'''.
+
* Заметим, что для любого распределения числа '''n''' сумма его '''k''' элементов равна числу '''n'''.
 
=== Пример ===
 
=== Пример ===
 
При '''n=6, k=3''' получаем 28 распределений:
 
При '''n=6, k=3''' получаем 28 распределений:
  
 
[[файл:КОМ53.JPG]]
 
[[файл:КОМ53.JPG]]
== Другие алгоритмы: ==
+
== [[Комбинаторные алгоритмы|Другие алгоритмы:]] ==
*[[составление перестановок]];
+
{{Список КАлг}}
*[[составление лексикографических перестановок]];
+
*[[составление следующей перестановки]];
+
*[[составление сочетаний]];
+
*[[составление лексикографических сочетаний]];
+
*[[составление следующего сочетания]];
+
*[[составление размещений]];
+
*[[составление лексикографических размещений]];
+
*[[составление следующего размещения]];
+
*[[составление разбиений]];
+
*[[составление лексикографических разбиений]];
+
*[[составление следующего разбиения]];
+
*[[составление распределений]];
+
*[[составление лексикографических распределений]];
+
*[[составление следующего распределения]].
+
 
== Ссылки ==
 
== Ссылки ==
* [[Участник:Logic-samara]]  
+
*[[Участник:Logic-samara]]  
[[Категория:Дискретная математика]][[Категория:Алгоритмы]][[Категория:Комбинаторика]]
+
[[Категория:Дискретная математика]][[Категория:Комбинаторика]][[Категория:Алгоритмы]]

Текущая версия на 10:39, 16 января 2024

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

Обозначения

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

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

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

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

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

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

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

КОМ51.JPG

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

Пример

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

КОМ53.JPG

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

Шаблон:Список КАлг

Ссылки