
Дискретка_Экзамен_Ответы / комб / 2 Сочетания с повторениями
.docx
2.9. Сочетания с повторениями
Сочетанием с повторениями из n элементов по k называется мультимножество мощности k, составленное из элементов n-элементного множества.
Например, из элементов множества М={1,2,3} можно составить такие сочетания по два с повторениями: {1,1}, {1,2}, {1,3}, {2,2}, {2,3}, {3,3}.
Теорема 2.7.
Количество различных сочетаний из n
элементов по k
с повторениями равно
.
Доказательство. Каждое сочетание полностью определяется, если указать, сколько раз входит каждый элемент множества в сочетание. Поставим в соответствие каждому сочетанию последовательность нулей и единиц, составленную по следующему правилу: ставим подряд столько единиц, сколько раз входит первый элемент множества в сочетание, далее ставим нуль, и после него пишем столько единиц, сколько раз входит первый элемент множества в это сочетание и т.д. Например, написанным выше сочетаниям из трех элементов по два будут соответствовать такие последовательности:
1100, 1010, 1001, 0110, 0101, 0011.
Таким
образом, каждому сочетанию с повторениями
из n
по k
соответствует последовательность из
k
единиц и n-1
нулей. Количество таких последовательностей
равно числу способов, которыми можно
выбрать n-1
мест для нулей из n+k-1
общего числа мест (),
или, то же самое, - числу способов выбора
k
мест для единиц из n+k-1
мест (
).
Рассмотрим
алгоритм порождения сочетаний с
повторениями в неубывающем лексикографическом
порядке. Сочетания с повторениями из
трёх элементов по три (),
в неубывающем лексикографическом
порядке запишутся следующим образом:
111 133
112 222
113 223
122 233
123 333
Алгоритм 2.7 порождения сочетаний с повторениями из n элементов по k.
Вход: i – заполняемое место в сочетании F;
b – минимальный элемент, который можно поставить на i-ое место.
Выход: последовательность всех сочетаний с повторениями из n элементов по k в неубывающем лексикографическом порядке.
Глобальные параметры: F – формируемое сочетание;
n – мощность множества;
k – количество элементов в сочетании.
Fi := x
i=k
Сочетание(i, b)
x{b..n}
+
F
Сочетание (i+1, x)
Конец
Рис.2.15. Рекурсивный алгоритм порождения сочетаний с повторениями
из n элементов по k
Пусть задано множество {1,2,3} и требуется получить все сочетания с повторениями из элементов этого множества по 3.
сочетание
3 {1,1,1)
множество
{1,2,3}
4 сочетание
сочетание
{1,1,2)
{1,1,?} 5
2 сочетание
{1,1,3)
множество
множество 7
сочетание
{1,2,3} 6 {2,3} {1,2,2)
сочетание
сочетание 8
{1,?,?}
{1,2,?}
сочетание
9 {1,2,3)
1 множество
{3} 10 сочетание
сочетание
{1,4,5)
множество {1,3,?}
{1,2,3}
сочетание
11 множество
13 сочетание
{?,?,?}
12 {2,3}
{2,2,2)
множество
сочетание 14
{2,3} {2,2,?} сочетание
сочетание
15
{2,2,3)
17 {2,?,?} множество
{3} 16 сочетание
сочетание
{2,3,3)
{2,3,?}
множество множество
{3} 18 {3} 19 сочетание
сочетание
сочетание
{3,3,3)
{3,?,?} {3,3,?}
Рис.2.16. Схема получения всех сочетаний с повторениями