Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пособие рязанова.doc
Скачиваний:
0
Добавлен:
28.12.2019
Размер:
1.55 Mб
Скачать

2.5. Размещения

Размещением n-элементного множества по k местам называется расположенные в определенном порядке элементы k-элементного подмножества n-элементного множества. Количество мест не превышает количества элементов в множестве.

Теорема 2.3. Количество всех различных размещений n-элементного множества М по k местам определяется формулой

.

Доказательство. Размещение можно представить последовательностью из k мест. Для того чтобы получить одно размещение, нужно выполнить одно за другим k действий: заполнить 1-ое место в последовательности, 2-ое место и так до k-го места. Для выполнения 1-го действия (заполнения 1-го места) можно взять любой элемент из множества М и поставить его на 1-ое место, т.е. его можно выполнить n-способами, и после этого в множестве М останется n-1 элемент. Для выполнения 2-го действия (заполнения 2-го места) можно взять любой элемент из оставшихся в множестве М и поставить его на 2-ое место, т.е. его можно выполнить n-1-способами, и после этого в множестве М останется n-2 элемента и т.д. до k-го места. По правилу произведения все k действий могут быть выполнены

способами, следовательно, количество всех различных размещений n-элементного множества М по k местам равно .

Получить все размещения n-элементного множества М по k местам можно, используя метод поиска с возвращением, выполняя действия, описанные в доказательстве теоремы 2.3. Формирование i-го элемента размещения опишем рекурсивным алгоритмом 2.3, блок-схема которого представлена на рис.2.7. В цикле перебираются элементы множества М, которые можно поставить на i-ое место. Если заполнено k-ое место, то размещение сформировано и выводим его, иначе заполняем следующее i+1-ое место по алгоритму 2.3 элементами множества М, за исключе­нием элемента, поставленного на i-ое место.

Алгоритм 2.3 порождения размещений n-элементного множества по k местам.

Вход: М – множество, элементы которого можно поставить на i-ое место;

i – заполняемое место в последовательности Р.

Выход: последовательность всех размещений n-элементного множества по k местам.

Глобальные параметры: А – формируемое размещение;

n – мощность множества;

k – количество мест.

Ai := x

+

Размещение(М-{x},i+1)

Рис.2.7. Рекурсивный алгоритм порождения размещений

n-элементного множества по k местам

Пусть задано множество {1,2,3,4} и требуется получить все его размещения по двум местам. Схема получения всех размещений по алгоритму 2.3 представлена на рис.2.8. В исходной ситуации все места размещения неопределенны. В схеме к стрелкам приписаны номера действий, которые выполняются последовательно в порядке нумерации. Действия 1, 5, 9 и 13 заполняют первое место размещения, действия 2, 3, 4, 6, 7, 8, 10, 11, 12, 14, 15 и 16 – второе (последнее) место размещения.

множество

{3,4}

размещение

2 (1,2)

множество множество

{2,3,4} 3 {2,4}

размещение размещение

(1,?) (1,3)

4

множество

{3,4}

размещение

(1,4)

1

множество

{3,4}

размещение

6 (2,1)

множество множество

{1,3,4} 7 {1,4}

размещение размещение

(2,?) (2,3)

8

5 множество

{1,3}

множество размещение

{1,2,3,4} (2,4)

р азмещение

(?,?) множество

9 {2,4}

размещение

10 (3,1)

множество множество

{1,2,4} 11 {1,4}

размещение размещение

(3,?) (3,2)

13 12

множество

{1,2}

размещение

(3,4)

множество

{2,3}

размещение

14 (4,1)

множество множество

{1,2,3} 15 {1,3}

размещение размещение

(4,?) (4,2)

16

множество

{1,2}

размещение

(4,3)

Рис.2.8. Схема получения всех размещений по алгоритму 2.3