ПредишенСледващото

Пермутации даден набор от наш елементи. Подреждането на тези елементи се нарича пермутация. Понякога се добави "на наш елементи." едно обикновено разпределени основно или естествен, поръчка, която се нарича тривиално пермутация. Действителните елементи на А ние не се интересуват. Често, елементите вземат числа от 1 до п, или от 0 до п-1. Ние означаваме множеството на пермутации на наш елементи чрез Pn. и е с капацитет чрез Pn. Ние искаме едни и същи три въпроса: какво е PN, как да подреди елементите на Pn. как да се преномерират.

Теоремата за броя на пермутации на броя на пермутации на наш елементи е равна н! - продукт на числата от 1 до п. (N! Прочетете п-факториел) Доказателство. Чрез индуциране. За п = 1, формула очевидно вярно. Да предположим, че това е вярно, за п-1, ще се окаже, че това се отнася и за п. Първо рационализиране елемент п може да бъде избран чрез методи, до избрания първият елемент атрибут методи могат да почиват. Следователно, правилното формула Рп = Pn-1, п. Ако Pn-1 = (М-1). След това Pn = N!

Номериране пермутации да се изброят пермутации, ще ви покажем много Pn взаимно сингъл в друг набор TN, което въведе номерацията ще бъде много по-лесно, а след това за всеки елемент р Pn като номера му отнема няколко образа му в Tn. TN- набор е директен продукт на няколко цифрови интервали Tn = (0: (п-1)) (0 :. (N-2) ... Това означава, че всеки елемент TN- колекция от неотрицателни числа i1, i2, ..., по- 1, в, където IK NK.

Показване Вземете пермутация и запишете до тривиално й пермутация. Тъй като първият индекс се проведе първия елемент (преброяване от нула) в тривиална прегрупиране. Пишем вместо тривиално пермутация низ от знаци, оставени. Като втори индекс се проведе второто промени елемент в тази линия. Повторете този процес до края. Очевидно е, че К-ти индекс е по-малко от дължината на к-тия ред и последната индекса е нула. Нека този процес, например.

Проба 0 1 2 3 4 5 6 индекс cadfgbeabcdefg 2 2 adfgbeabdefg 0 2 0 dfgbebdefg 1 2 0 1 fgbebefg 2 2 0 1 2 gbebeg 2 2 0 1 2 2 бебе 0 2 0 1 2 2 0 ее 0 2 0 1 2 2 0 0 очевидно е, че този процес е обратим и обратния картографиране за изграждане на набор от показатели първоначална пермутация.

Номериране множество Tn Всяко директен продукт подредени комплекти може да се разглежда като променлива корен база. Не забравяйте примера на секунди от първата лекция или да разглежда всеки стар размер мащаб: 1 ярд = 3 фута, 1 фут = 12 инча, 1 инч = 12 реда, 1 ред = 6 точки. (2, 0, 4, 2, 3) = 0 2 ярда крака 4 инча 2 реда по 3 точки, колко точки е? Необходимо е да се разчита (това се нарича схема Horner) (((2 3 + 0) 12 + 4) 12 + 2) 6 + 3

Номерирането на зададената Tn - 2 Формула #, която намира място за набор от показатели i1, i2, ..., в-1, в, ние предпочитаме да пиша под формата на повтарящи се изрази # (i1, i2, ..., в) = а (i1, i2, ... в-1, п-1); а (i1, i2, ..., IK, к) = а (i1, i2, ..., IK-1, к-1) (п-к + 1) + IK; а (празно, 0) = 0; Съгласно тази формула # (2,0,1,2,2,0,0) = а (2,0,1,2,2,0,6). Имаме (2,1) = 2; а (2,0,2) = 06 февруари + 0 = 12; а (2,0,1,3) = 12 май + 1 = 61; на (2,0,1,2,4) = 4 + 2 61 = 246; на (2,0,1,2,2,5) = 3 246 + 2 = 740; а (2,0,1,2,2,0,6) = 740 2 + 0 = 1480;

Бюст вида индекси Въз основа на горното, за да подреди пермутация проста: Вие трябва да преминете през всички набори от показатели и всеки комплект за изграждане на съответния пермутация. За да преминете през набора от показатели, ние се отбележи, че почти всеки апартамент - рекорден брой в специалния брой система с променлив начин (система, наречена факториел). Правила за добавяне на един в тази система е почти толкова прости, колкото двоичен: движещи се от опита за добавяне последната цифра в текущата изхвърлянето 1. Ако е възможно, добавете 1 стоп. Ако е възможно, запишете категорията на нула и да преминете към следващата цифра.

Повтаряне определя индекси - 2 вземем примера 7 6 5 4 3 2 1 Тази променлива база 3 4 4 2 1 1 0 3 4 4 2 2 0 0 Имайте предвид, че 3 4 4 2 2 1 0 всеки ред старт е на 3 април 4 3 0 0 0 същите, както в предишния, 3 4 4 3 0 1 0 тогава елемент е строго 3 4 4 3 1 0 0-голяма. и 3 4 4 3 1 1 0 не е значително по-нататък. 3 4 4 3 2 0 0 Следователно, всеки ред 3 4 4 3 2 1 0 лексикографски по-голям от 3 5 0 0 0 0 0 последния. 3 5 0 0 0 1 0

Теорема на лексикографски повтаряне през пермутации описани алгоритъм минава през промени в възходящ лексикографски ред. Доказателство. Достатъчно е да се покаже, че ако имаме два вида индекси I1 и I2 и I1 лексикографски предхожда I2 пермутацията (I1) лексикографски предхожда (I2). Тези пермутации се образуват последователно, и все едно и също I1 и I2 и същата пермутация. По-голям индекс стойност отговаря на по-големи и елемент.

Директен алгоритъм за сортиране лексикографски пермутации да разглежда всеки пермутация р и директно да намерят лексикографски следващия. Вземете началото - първите к елементи. Сред известните минимални продължения, в който всички елементи са подредени във възходящ ред, и максимална, където низходящ. Например, в пермутация р = (4, 2, 1, 7, 3, 6, 5) всички продължи да (4, 2, 1) лежат между (3, 5, 6, 7) и (7, 6, 5, 3). Продължаване на съществуващата-малка от максималната, а третият елемент все още не може да се промени. И 4-ти също. А на 5-то трябва да се променят. За да направите това, останалите елементи, необходими за прием на следващата, за да го поставят петата и приписват минимално разширение. Завой (4, 2, 1, 7, 5, 3, 6).

Директен алгоритъм лексикографски пермутации сортиране - 2 Нека напиша следващите няколко пермутации. (4, 2, 1, 7, 5, 3, 6) (4, 2, 1, 7, 5, 6, 3), (4, 2, 1, 7, 6, 5, 3), (4, 2, 3, 1, 5, 6, 7), (4, 2, 3, 1, 5, 7, 6) (4, 2, 3, 1, 6, 5, 7) (4, 2, 3, 1, 6 , 7, 5) (4, 2, 3, 1, 7, 5, 6) (4, 2, 3, 1, 7, 6, 5) (4, 2, 3, 5, 1, 6, 7)

Официално описание на състоянието на алгоритъм операционна: пермутация Р и Булева атрибут isActive. Първоначално положение: Записаният тривиално Първообразът и isActive = True. Standard стъпка: Ако isActive, издава пермутация като резултат. Преместване в края на краищата, да се намери в най-голямата Първообразът намалява монотонно наставка. Нека к - позиция преди суфикса. Сложете isActive: = (к GT; 0). Ако isActive, а след това се намери най-малкия елемент в суфикса, надминавайки п.к., да разменят местата с него п.к., след суфикса "флип".

Друг алгоритъм за изброяване на пермутации Нека сега да се опитаме да сортирате пермутация, така че две последователни размествания не са много различни един от друг. Колко малко? На единица транспониране, където разменят две съседни елементи. Възможно ли е? Ние показва схематична диаграма на такова алгоритъм, че ще бъде интересно е това. Представете си елементарни N-1 "механизми", които всеки елемент се движи в рамките на своя набор. На всяка стъпка на механизма прави преминаването към наляво или надясно. Посоката на промяна, когато позицията достига ръба. От смяната на посоката се губи една стъпка, по време на който на следващата стъпка е механизъм за вземане, което, обаче, също може да промени посоката.

Друг пермутация алгоритъм обхождане -2 Нека например. 1 2 3 4 Може Чиито играта 1 2 3 4 5 чийто ред а б в г д а в г а б д а б а в г д а в г б а д а б в един г д а в г б д а б б в г за д а в г д б а а б в г д а б в г д а б С б г д А в г на д б С б г а д а в а г д б С б а г д А в г д б сус на б г д А г в д б а С б г д б г С д б А в г б д а г в а д б а в а г б д а г в д а б а

Бюст пермутации. 1 функция ExistsNextPerm (Var KCH: число): булева; Var Л, IP, IVc, IPC: цяло число; започнем резултат: = False; за IV: = NV Downto 2 направи, ако броят [Л] LT; М-1 и след това започва Inc (брои [Л]); IP: = поз [Л]; IPC: = IP + реж [Л]; IVC: = къдрене [IPC]; къдрене [IP]: = IVC; къдрене [IPC]: = IV; поз [IVc]: = IP; поз [Л]: = IPC; KCH: = IP; ако реж [Л] LT; 0, тогава декември (KCH); резултат: = True; изход; края друг започне брой [Л]: = 0; реж [Л]: = - реж [Л]; приключи; приключи;

Проблемът за минимизиране на сумата от двойки продукти от два комплекта от N номера предположим, че, например, и. Тези числа са разделени по двойки (AK, BK) се изчисляват и сумата от двойки продукти к 1: п akbk. Можете да промените номерацията и. Трябва да изберете номерация, в който сумата е минимална. По този проблем, можете да се оправи и номериране и да се потърси пермутация. за които минималната сумата от к 1: п АКБ (к). Ние ще изберем номерация, когато подредени във възходящ ред, и - в низходящ ред.

Теоремата на минимална сума от двойките продукти Минимална сума от двойките продукти, постигнато по тривиален пермутация. Доказателство. Да предположим, че съществуват два индекса К и R, които Ak LT; ар и BK LT; Бр. В този случай (AR ак) (Br ВК) GT; 0; Аг BR + ак BK GT; Аг BK + ак BR. В нашата номерация във възходящ. Ако не подредени във възходящ ред, след това има двойка к и R, както е обсъдено по-горе. Пренареждане тази двойка и ВК BR. ние намалите стойността на сумата. Така че, в оптималното решение са възходящ. Тази проста теорема да се срещне с нас в бъдещите няколко пъти.

Задачата на увеличаване на максималното подпоследователност от предварително определена последователност от числа п на дължина. Необходимо е да се намери най-голямата си дължина последователност, в които цифрите ще отидат във възходящ ред. Например, в последователността, 3, 2, 11, 14, 32, 16, 6, 17, 25, 13, 37, 19, 41, 12, 7, 9, максимално ще последователност 2, 11, 14, 16, 17, 25, 37, 41 Тъй пермутации на тази задача е свързан така, че първоначалната последователност може да бъде пермутация. Ние ограничи себе си, за да покаже как този проблем е решен, и формализирането и обосновката на алгоритъма ще даде слушатели.

Намирането на максимално увеличаване подпоследователност Ние възможно икономически да се разделят ни в намаляване последователност (Пример променен) 9 12 11 14 18 16 6 17 15 13 37 19 21 8 7 5 9 6 5 12 11 8 7 14 13 18 16 15 17 37 19 21 Всеки следния номер е написан в най-горната част на линиите, където не се очаква нарушаване на реда. Вземете броя на долните редове, 21. Защо е необходимо за осми ред? Това предотвратява 19. Редица 19 17. И предотвратява 16. т. Г. Последователност 9, 11, 14, 16, 17, 19, 21 се увеличава, и има дължина 7. Всяка последователност на голяма дължина включва две числа на един ред ( Дирихле принцип) и може да се увеличава.

Проблемът на минималния брой инверсии са дадени последователност от числа п на дължина. Инверсията се казва, че се работи на място, огледален образ на някоя от нейните подниз на - твърди podposledovatelnosti.Trebuetsya за минималния брой обръщане, които да се поставят елементи на последователност във възходящ ред. Например, Първообразът на "твърди", така че можете да преобразувате (червени букви пренаредени голям вече са на място) Solid sploanShYa naolPSShYa AnolPSShYa AnlOPSShYa ALNOPSSHYA (пет инверсии)

Пермутации изпитни въпроси. Тяхната изброяване и номериране. Проблемът с минимума от скаларната продукт. Проблемът с максимално увеличаване подпоследователност.

Задача 1. Двустранен преход пермутация номер 2. Намерете пермутация на разстояние от това на определен брой стъпки. 3. Бюст пермутации на елементарни размествания. 4. Стартирайте пример за проблема с минимума от скаларната продукт.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!