Дискретка_Экзамен_Ответы / комб / 2 Перестановки
.docx
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