Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Дискретка_Экзамен_Ответы / комб / 2 Перестановки

.docx
Скачиваний:
62
Добавлен:
11.03.2015
Размер:
17.49 Кб
Скачать

2.4. Перестановки

Перестановкой называется расположенные в определенном порядке элементы множества М.

Теорема 2.2. Количество всех различных перестановок n-элемент-ного множества М (количество способов упорядочивания множества) определяется формулой Рn=n!.

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

Алгоритм 2.2 порождения перестановок n-элементного множества.

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

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

Выход: последовательность всех перестановок n-элементного множества.

Глобальные параметры: Р – формируемая перестановка;

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

Перестановка(М,i)

xМ

Рi := x

i=n

+

Конец

Р

Перестановка(М-{x},i+1)

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

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

Пусть задано множество {1,2,3} и требуется получить все его перестановки

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

{3} 3 

перестановка перестановка

(1,2,?) (1,2,3)

2

множество

{2,3}

перестановка

(1,?,?)

4

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

{1} 5 

перестановка перестановка

(2,3,?) (2,3,1)

1

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

{3} 8 

перестановка перестановка

(2,1,?) (2,1,3)

7

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

{1,2,3} 6 {1,3}

перестановка перестановка

(?,?,?) (2,?,?)

9

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

{1} 10 

перестановка перестановка

(2,3,?) (2,3,1)

11

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

{2} 13 

перестановка перестановка

(3,1,?) (3,1,2)

12

множество

{1,2}

перестановка

(3,?,?)

14

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

{1} 15 

перестановка перестановка

(3,2,?) (3,2,1)

Рис.2.6. Схема получения всех перестановок по алгоритму 2.2