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

Введение

Комбинаторный анализ изучает комбинаторные объекты: перестановки, сочетания, размещения, графы, сети и т.д.

В большинстве случаев решаются такие задачи:

1) Перечисление комбинаторных объектов определенного вида.

2) Подсчет количества комбинаторных объектов определенного вида.

Для перечисления комбинаторных объектов, они упорядочиваются некоторым образом А1 А2 А3 . . . . . и т.д.

Как правило алгоритм перечисления с первого объекта А1, а затем используя свойства А1, строится объект А2 .После используя свойства А2 строится объект А3 и т.д.

Таким образом, чтобы построить объект Аk нужно строить последовательно объекты А1 А2 А3 . . . . А(k-1) , что требует большого объема вычислений.

В нашей работе предлагается метод, значительно сокращающий построения произвольного объекта Аk , на примере перестановок из элементов.

Перестановкой n-ой степени называется взаимное расположение чисел 1,2,3. . . . .n

Существует несколько алгоритмов перечисления перестановок n-ой степени. Один из них заключается в следующем: перестановки упорядочиваются в лексикографическом порядке. Пусть заданны перестановки

А= i1 i2 i3 . . .in, В= j1 j2 j3 . . . . jn. Считается, что А < В,

если i1 < j1.

Если же i1 = j1, сравниваются i2 и j2. В этом случае, если i2 < j2.

Если же i2 = j2, сравниваются i3 и j3. В этом случае А < В, если i3 < j3 и т. д.

Алгоритм перечисления при таком порядке следующий. Самым первым считается перестановка 1,2,3, . . . , n, где числа расположены в возрастающем порядке, а последним – перестановка n, (n-1), . . . , 2, 1, где числа расположены в убывающем порядке.

В этом алгоритме все перестановки перечисляются в возрастающем порядке.

Например:

1 2 3

1 3 2

2 1 3

2 3 1

3 1 2

3 2 1

Цель настоящей работы состоит в том, чтобы найти алгоритм, позволяющий найти перестановку с заданным номером К в их лексикографическом упорядочении, не перечисляя предыдущих, что значительно сокращает вычисления. И обратно, по заданной перестановке определить её порядковый номер.

Анализ

Вопрос о том , сколькими способами можно расположить числа

1 2 3 4

Ответ 4! = 24. Есть 24 комбинации уже известные математикам. Что бы найти перестановку по ее порядковому номеру в лексикографическом упорядовачении, а также для нахождения порядкового номера заданной перестановки нам потребуется понятие комбинационного числа.

Для этого посмотрим, как работают системы счисления. В десятичной системе счисления единицы (цифры в самой правой позиции) меняются каждый шаг. Десятки(цифры на второй позиции справа) меняются каждый десятый шаг и так далее.

В шестнадцатиричной системе счисления единицы меняются каждый шаг. Десятки меняются каждый шестнадцатый шаг, а сотни – через 256 шагов и т.д.

Десятичная система работает следующим образом:

1

2

3 Место единиц меняется каждый шаг.

.. Место десятков меняется каждый десятый шаг.

..

10

..

20

Шестнадцатиричной система основана на основании 16:

1

..

9

A

B В шестнадцатиричной системе единицы

C меняют место каждый 16-ый шаг.

D

E

F

10

Одно сходство в этих двух системах - то, когда перечисляются все единицы,то меняется цифра состоящая в позиции десятков, когда меняются все цифры десятков,то меняются все цифры сотен и т.д... Есть ли способ выяснить сходство между десятичными числами и перестановками? Если перечислять перестановки в лексикографическом порядке,

1 2 3 4

1 2 4 3

1 3 2 4

1 3 4 2

1 4 2 3

1 4 3 2

2 1 3 4

2 1 4 3

...

...

то можно видеть, что в первой позициии (отсчет справа) числа изменяются каждый шаг (длина шага равна 0!=1 – число перестановок степени 0), во второй позиции также изменяются каждый шаг (длина шага равна 1!=1 – число перестановок степени 1), в третьей позиции каждый второй шаг (длина шага равна 2!=2 – число перестановок степени 2), а в четвертой позиции числа меняются через шесть шагов (длина шага равна 2!=6 – число перестановок степени 3) и т.д. Есть сходство с десятичной и шестнадцатиричной системой, но есть и различие. Попытаемся найти условие изменения чисел в каждой позиции.

- В десятичной системе отношения следующие: ×1 ×10 ×100 ×1000

- В шестнадцатиричной системе отношения следующие: ×1 ×16 ×256

- Настоящая система в комбинационном порядке такова: ×1×1 ×2 ×6 ×24 ×120 и т.д.

- Видно, что шаги изменения чисел равны факториалам: 0!, 1!, 2!, 3!, ...

0! = 1

1! = 1

2! = 2

3! = 6

4! = 24

5! = 120

ПОРЯДОК

4! = 24 3! = 6 2! = 2 1! = 1 0! = 1

0.

 

 

 

5

 

 

 

4

 

 

 

3

 

 

 

2

 

 

1

1.

 

 

 

5

 

 

 

4

 

 

 

3

 

 

 

1

 

 

2

2.

 

 

 

5

 

 

 

4

 

 

 

2

 

 

 

3

 

 

1

3.

 

 

 

5

 

 

 

4

 

 

 

2

 

 

 

1

 

 

3

4.

 

 

 

5

 

 

 

4

 

 

 

1

 

 

 

3

 

 

2

5.

 

 

 

5

 

 

 

4

 

 

 

1

 

 

 

2

 

 

3

6.

 

 

 

5

 

 

 

3

 

 

 

4

 

 

 

1

 

 

2

7.

 

 

 

5

 

 

 

3

 

 

 

4

 

 

 

2

 

 

1

8.

 

 

 

5

 

 

 

3

 

 

 

2

 

 

 

1

 

 

4

9.

 

 

 

5

 

 

 

3

 

 

 

2

 

 

 

4

 

 

1

10.

 

 

 

5

 

 

 

3

 

 

 

1

 

 

 

2

 

 

4

11.

 

 

 

5

 

 

 

3

 

 

 

1

 

 

 

4

 

 

2