Перестановкою скінченної множини називається впорядкований набір без повторів із її елементів.
Перестановка — довільна бієкція . Усього існує (факторіал) різних перестановок, де (потужність множини (кількість елементів у ній)).
Нотація
Для зручності, перестановки розглядають над множиною (будь-яку скінченну множину можна однозначно відобразити в цю множину).
У два рядки
Запис означає, що — перестановка множини і (кожне число у верхньому рядку матриці переводиться у відповідне число в нижньому рядку).
В один рядок
Уживанішим у літературі є запис перестановки в один рядок (верхній рядок не пишеться):
- (та сама перестановка, що і в прикладі запису у два рядки).
Циклічна
Циклом перестановки називається така послідовність , що
Приклад:
Перестановка має три цикли:
Циклічний запис перестановки — це запис через її цикли:
Так для перестановки з прикладу справедливим є запис:
Пов'язані означення
- Нерухомий елемент перестановки це елемент Нерухомий елемент є циклом довжини 1.
- Транспозиція — перестановка, що міняє місцями два елементи. Транспозиція є циклом довжини 2.
- Інверсією в перестановці називається пара індексів така, що та . Парність числа інверсій в перестановці визначає парність перестановки.
- Безлад — перестановка без нерухомих елементів.
- Декремент перестановки — це кількість елементів мінус кількість циклів. Парність декремента дорівнює парності перестановки.
Група перестановок
Перестановки скінченної множини утворюють групу щодо операції множення перестановок (композиції).
Тотожна перестановка
Нейтральним елементом в групі перестановок є тотожна перестановка , для якої виконується:
Тотожна перестановка переводить множину саму в себе.
Добуток перестановок
Добуток перестановок — це послідовне виконання двох перестановок (композиція).
Якщо — перестановки, то:
- .
Наприклад, нехай маємо
Переставимо стовпці у , щоб її верхній ряд збігався із нижнім рядом
- .
Обернений елемент
Кожна перестановка має обернену перестановку.
перестановки така що:
Алгоритми на перестановках
Алгоритм отримання всіх перестановок
Наведений нижче алгоритм дозволяє послідовно отримати всі перестановки скінченної множини. Для зручності будемо вважати, що елементами множини є числа від 1 до n, що записані у масив A.
- Спочатку (В масиві записана тотожна перестановка)
- Проглядаючи елементи з кінця масиву, знаходимо найбільше таке, що .
Якщо такого не має, то завершуємо роботу. - Знаходимо максимальне таке, що
- Міняємо місцями -й і -й елементи:
- Перегортаємо частину масиву з -го по останній (-й) індекси включно:
- Отримана нова перестановка. Повертаємося до п. 2.
Аналіз складності алгоритму
Кількість елементів, що розглядаються чи опрацьовуються на кроках 3 і 5 не перевищує кількість елементів, що переглядаються на кроці 2. На кроці 4 завжди виконується тільки одна операція обміну елементів. Отже, визначальною для складності алгоритму є кількість операцій на кроці 2. Вона залежить від поточного стану множини і може змінюватися від 1 до n − 1. Для визначення складності алгоритму достатньо оцінити середню кількість операцій на кроці 2.
Кількість перестановок для яких на кроці 2 буде переглядатись рівно елементів така — .
Середня кількість переглядів елементів на кроці 2 для всіх можливих перестановок:
Отже, в середньому на кроці 2 виконується менше ніж три перегляди елементів. Значить, такого ж порядку кількість операцій виконується на кроках 3 і 5. Звідси випливає, що отримання нової перестановки відбувається в середньому за константну кількість операцій , тоді складність алгоритму отримання всіх перестановок буде відповідно .
Приклад роботи
Для прикладу отримаємо всі перестановки множини з трьох елементів, розглянемо стани масиву на початку п. 2, а також відповідні індекси :
- A = (1, 2, 3) (i = 2, j = 3)
- A = (1, 3, 2) (i = 1, j = 3)
- A = (2, 1, 3) (i = 2, j = 3)
- A = (2, 3, 1) (i = 1, j = 2)
- A = (3, 1, 2) (i = 2, j = 3)
- A = (3, 2, 1) — завершення алгоритму.
Алгоритм послідовно отримав всі 6 можливих перестановок.
Алгоритм отримання кореня з перестановки
Коренем з перестановки називається така перестановка , що .
Справедливе наступне твердження: — перестановка . Звідси випливає, що . Якщо парне, то — корінь із перестановки.
, де НСК — найменше спільне кратне, а — довжина i-го циклу в циклічному записі перестановки . Отже, якщо всі непарні, то k — непарне, а k+1 — парне, і корінь з перестановки гарантовано існує (достатньо просто піднести початкову перестановку до відповідного степеня).
Цей розв'язок неприйнятний, якщо перестановка має цикли парної довжини. Але це не означає, що таки перестановки взагалі не мають коренів.
Теорема про існування кореня з перестановки
Корінь з перестановки існує тоді і тільки тоді, якщо кількість циклів перестановки довжини — парна.
Доведення
Спочатку доведемо необхідність умови. Припустимо існує корінь . Розглянемо циклічне представлення цієї перестановки: .
Якщо i-й цикл має непарну довжину, то при піднесенні перестановки до квадрата, він перейде в цикл — теж непарної довжини. Тобто якщо в перестановці якийсь елемент належав циклові непарної довжини, то і у квадраті цієї перестановки елемент буде належати циклові непарної довжини.
Якщо ж i-й цикл має парну довжину, то при піднесенні перестановки до квадрата, він перейде у два цикли однакової довжини і .
Цикли парної довжини у квадраті перестановки могли утворитись тільки з циклів парної довжини. А отже, якщо є один цикл парної довжини, то обов'язково існує і інший такої самої довжини.
Доведення достатності випливає з алгоритму знаходження кореня.
Опис алгоритму
- Представити перестановку в циклічному вигляді.
- Перевірити виконання умови теореми. Якщо не виконується, то корінь не існує — завершити роботу.
- Перетворити кожен цикл непарної довжини на цикл
- Розділити цикли парної довжини на пари рівної довжини. Кожну пару циклів і об'єднати в один цикл
Оцінка складності
Кожен із 4 кроків алгоритму може бути виконаний за час , отже загальна складність — .
Приклад використання
Для прикладу знайдемо корінь з перестановки
- Циклічне представлення
- Циклів довжини два, парна кількість, умова теореми виконується.
- Перетворимо цикл непарної довжини
- Перетворимо пару циклів парної довжини
Шукана перестановка виглядає так: , легко переконатись, що .
Зауваження
Наведений алгоритм знаходить тільки один корінь, в загальному ж випадку коренів може бути декілька.
Перестановки з повторенням
Розглянемо n елементів m різних типів, причому в кожному типі всі елементи однакові. Тоді перестановки із всіх цих елементів з точністю до порядку розміщення однотипних елементів називаються перестановками з повторенням. Якщо ki — кількість елементів i-го типу, то і кількість можливих перестановок з повтореннями дорівнює мультиноміальному коефіцієнту
Див. також
Джерела
- В.А. Вишенський, М.О. Перестюк. Комбінаторика: перші кроки. — Кам'янець-Подільський : Аксіома, 2010. — 324 с. — .(укр.)
- [en]. An Introduction to the Theory of Groups. — 4th. — Springer (Graduate Texts in Mathematics), 1994. — 532 с. — .(англ.)
- Дональд Кнут. Sorting and Searching // The Art of Computer Programming. — 3rd. — Massachusetts : Addison–Wesley, 1998. — Т. 3. — 780 с. — .(англ.)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Perestanovkoyu skinchennoyi mnozhini X displaystyle X nazivayetsya vporyadkovanij nabir bez povtoriv iz yiyi elementiv Vsi 6 perestanovok 3 kulok Perestanovka dovilna biyekciya p X X displaystyle pi X to X Usogo isnuye n displaystyle n faktorial riznih perestanovok de n X displaystyle n X potuzhnist mnozhini kilkist elementiv u nij NotaciyaDlya zruchnosti perestanovki rozglyadayut nad mnozhinoyu 1 2 n displaystyle 1 2 dots n bud yaku skinchennu mnozhinu mozhna odnoznachno vidobraziti v cyu mnozhinu U dva ryadki Zapis f 1 2 3 4 5 6 7 8 9 10 2 5 10 4 3 7 1 9 8 6 displaystyle f begin pmatrix 1 amp 2 amp 3 amp 4 amp 5 amp 6 amp 7 amp 8 amp 9 amp 10 2 amp 5 amp 10 amp 4 amp 3 amp 7 amp 1 amp 9 amp 8 amp 6 end pmatrix oznachaye sho f displaystyle f perestanovka mnozhini 1 2 10 displaystyle 1 2 dots 10 i f 1 2 f 2 5 f 10 6 displaystyle f 1 2 f 2 5 dots f 10 6 kozhne chislo u verhnomu ryadku matrici perevoditsya u vidpovidne chislo v nizhnomu ryadku V odin ryadok Uzhivanishim u literaturi ye zapis perestanovki v odin ryadok verhnij ryadok ne pishetsya f 2 5 10 4 3 7 1 9 8 6 displaystyle f begin pmatrix 2 amp 5 amp 10 amp 4 amp 3 amp 7 amp 1 amp 9 amp 8 amp 6 end pmatrix ta sama perestanovka sho i v prikladi zapisu u dva ryadki Ciklichna Dokladnishe Ciklichna perestanovka ta Ciklichnij zapis kombinatorika Ciklom perestanovki p displaystyle pi nazivayetsya taka poslidovnist x 1 x 2 x n displaystyle x 1 x 2 dots x n sho p x 1 x 2 p x 2 x 3 p x n 1 x n p x n x 1 displaystyle pi x 1 x 2 pi x 2 x 3 dots pi x n 1 x n pi x n x 1 Priklad Perestanovka f 1 2 3 4 5 6 7 8 9 10 2 5 10 4 3 7 1 9 8 6 displaystyle f begin pmatrix 1 amp 2 amp 3 amp 4 amp 5 amp 6 amp 7 amp 8 amp 9 amp 10 2 amp 5 amp 10 amp 4 amp 3 amp 7 amp 1 amp 9 amp 8 amp 6 end pmatrix maye tri cikli 1 2 5 3 10 6 7 1 displaystyle 1 to 2 to 5 to 3 to 10 to 6 to 7 to 1 4 4 displaystyle 4 to 4 8 9 8 displaystyle 8 to 9 to 8 Ciklichnij zapis perestanovki ce zapis cherez yiyi cikli p x 1 1 x n 1 1 x 1 2 x n 2 2 x 1 m x n m m displaystyle pi begin pmatrix x 1 1 amp dots amp x n 1 1 end pmatrix begin pmatrix x 1 2 amp dots amp x n 2 2 end pmatrix dots begin pmatrix x 1 m amp dots amp x n m m end pmatrix Tak dlya perestanovki z prikladu spravedlivim ye zapis f 1 2 5 3 10 6 7 4 8 9 displaystyle f begin pmatrix 1 amp 2 amp 5 amp 3 amp 10 amp 6 amp 7 end pmatrix begin pmatrix 4 end pmatrix begin pmatrix 8 amp 9 end pmatrix Pov yazani oznachennyaNeruhomij element perestanovki ce element x X p x x displaystyle x in X mid pi x x Neruhomij element ye ciklom dovzhini 1 Transpoziciya perestanovka sho minyaye miscyami dva elementi Transpoziciya ye ciklom dovzhini 2 Inversiyeyu v perestanovci p displaystyle pi nazivayetsya para indeksiv i j displaystyle i j taka sho 1 i lt j n displaystyle 1 leqslant i lt j leqslant n ta p i gt p j displaystyle pi i gt pi j Parnist chisla inversij v perestanovci viznachaye parnist perestanovki Bezlad perestanovka bez neruhomih elementiv Dekrement perestanovki ce kilkist elementiv minus kilkist cikliv Parnist dekrementa dorivnyuye parnosti perestanovki Grupa perestanovokDokladnishe Simetrichna grupa Perestanovki skinchennoyi mnozhini X displaystyle X utvoryuyut grupu shodo operaciyi mnozhennya perestanovok kompoziciyi Totozhna perestanovka Nejtralnim elementom v grupi perestanovok ye totozhna perestanovka E displaystyle E dlya yakoyi vikonuyetsya x X E x x displaystyle forall x in X E x x Totozhna perestanovka perevodit mnozhinuX displaystyle X samu v sebe Dobutok perestanovok Kompoziciya perestanovok Dobutok perestanovok ce poslidovne vikonannya dvoh perestanovok kompoziciya Yaksho f g displaystyle f g perestanovki to c f g x X c x g f x displaystyle c f times g Leftrightarrow forall x in X c x g f x Napriklad nehaj mayemo A a b c d e f c d a f b e B a b c d e f f e d c b a displaystyle A begin pmatrix a amp b amp c amp d amp e amp f c amp d amp a amp f amp b amp e end pmatrix quad quad B begin pmatrix a amp b amp c amp d amp e amp f f amp e amp d amp c amp b amp a end pmatrix Perestavimo stovpci u B displaystyle B shob yiyi verhnij ryad zbigavsya iz nizhnim ryadom A displaystyle A A B a b c d e f c d a f b e c d a f b e d c f a e b a b c d e f d c f a e b displaystyle A circ B begin pmatrix a amp b amp c amp d amp e amp f c amp d amp a amp f amp b amp e end pmatrix circ begin pmatrix c amp d amp a amp f amp b amp e d amp c amp f amp a amp e amp b end pmatrix begin pmatrix a amp b amp c amp d amp e amp f d amp c amp f amp a amp e amp b end pmatrix Obernenij element Kozhna perestanovka maye obernenu perestanovku displaystyle forall perestanovki f f 1 displaystyle f exists f 1 taka sho f f 1 f 1 f E displaystyle f times f 1 f 1 times f E dd Algoritmi na perestanovkahAlgoritm otrimannya vsih perestanovok Navedenij nizhche algoritm dozvolyaye poslidovno otrimati vsi perestanovki skinchennoyi mnozhini Dlya zruchnosti budemo vvazhati sho elementami mnozhini ye chisla vid 1 do n sho zapisani u masiv A Spochatku i A i i displaystyle forall i A i i V masivi zapisana totozhna perestanovka Proglyadayuchi elementi z kincya masivu znahodimo najbilshe i displaystyle i take sho A i lt A i 1 displaystyle A i lt A i 1 Yaksho takogo ne maye to zavershuyemo robotu Znahodimo maksimalne j j gt i displaystyle j j gt i take sho A j gt A i displaystyle A j gt A i Minyayemo miscyami i displaystyle i j i j displaystyle j j elementi A i A j displaystyle A i leftrightarrow A j Peregortayemo chastinu masivu z i 1 displaystyle i 1 go po ostannij n displaystyle n j indeksi vklyuchno k i 1 i n 1 2 A k A i n 1 k displaystyle forall k overline i 1 lfloor i n 1 2 rfloor A k leftrightarrow A i n 1 k Otrimana nova perestanovka Povertayemosya do p 2 Analiz skladnosti algoritmu Kilkist elementiv sho rozglyadayutsya chi opracovuyutsya na krokah 3 i 5 ne perevishuye kilkist elementiv sho pereglyadayutsya na kroci 2 Na kroci 4 zavzhdi vikonuyetsya tilki odna operaciya obminu elementiv Otzhe viznachalnoyu dlya skladnosti algoritmu ye kilkist operacij na kroci 2 Vona zalezhit vid potochnogo stanu mnozhini i mozhe zminyuvatisya vid 1 do n 1 Dlya viznachennya skladnosti algoritmu dostatno ociniti serednyu kilkist operacij na kroci 2 Kilkist perestanovok dlya yakih na kroci 2 bude pereglyadatis rivno k displaystyle k elementiv taka C n k 1 C k 1 2 n k 1 displaystyle C n k 1 cdot C k 1 2 cdot n k 1 Serednya kilkist pereglyadiv elementiv na kroci 2 dlya vsih mozhlivih perestanovok 1 n k 1 n 1 k C n k 1 C k 1 2 n k 1 displaystyle frac 1 n sum k 1 n 1 k cdot C n k 1 cdot C k 1 2 cdot n k 1 1 n k 1 n 1 k n k 1 n k 1 k 1 2 k 1 n k 1 1 2 k 0 n 2 k 1 k lt 1 2 k 0 k 1 k e lt 3 displaystyle frac 1 n sum k 1 n 1 k cdot frac n k 1 n k 1 cdot frac k 1 2 cdot k 1 cdot n k 1 frac 1 2 sum k 0 n 2 frac k 1 k lt frac 1 2 sum k 0 infty frac k 1 k e lt 3 Otzhe v serednomu na kroci 2 vikonuyetsya menshe nizh tri pereglyadi elementiv Znachit takogo zh poryadku kilkist operacij vikonuyetsya na krokah 3 i 5 Zvidsi viplivaye sho otrimannya novoyi perestanovki vidbuvayetsya v serednomu za konstantnu kilkist operacij O 1 displaystyle O 1 todi skladnist algoritmu otrimannya vsih perestanovok bude vidpovidno O n displaystyle O n Priklad roboti Dlya prikladu otrimayemo vsi perestanovki mnozhini z troh elementiv rozglyanemo stani masivu na pochatku p 2 a takozh vidpovidni indeksi i j displaystyle i j A 1 2 3 i 2 j 3 A 1 3 2 i 1 j 3 A 2 1 3 i 2 j 3 A 2 3 1 i 1 j 2 A 3 1 2 i 2 j 3 A 3 2 1 zavershennya algoritmu Algoritm poslidovno otrimav vsi 6 mozhlivih perestanovok Algoritm otrimannya korenya z perestanovki Korenem z perestanovki p displaystyle pi nazivayetsya taka perestanovka ps displaystyle psi sho ps 2 p displaystyle psi 2 pi Spravedlive nastupne tverdzhennya p displaystyle forall pi perestanovka k N p k E displaystyle exists k in N pi k E Zvidsi viplivaye sho p k 1 p displaystyle pi k 1 pi Yaksho k 1 displaystyle k 1 parne to p k 1 2 ps displaystyle pi frac k 1 2 psi korin iz perestanovki k H C K n 1 n 2 n l displaystyle k HCK n 1 n 2 n l de NSK najmenshe spilne kratne a n i displaystyle n i dovzhina i go ciklu v ciklichnomu zapisi perestanovki p displaystyle pi Otzhe yaksho vsi n i displaystyle n i neparni to k neparne a k 1 parne i korin z perestanovki garantovano isnuye dostatno prosto pidnesti pochatkovu perestanovku do vidpovidnogo stepenya Cej rozv yazok neprijnyatnij yaksho perestanovka maye cikli parnoyi dovzhini Ale ce ne oznachaye sho taki perestanovki vzagali ne mayut koreniv Teorema pro isnuvannya korenya z perestanovki Korin z perestanovki isnuye todi i tilki todi yaksho k N displaystyle forall k in N kilkist cikliv perestanovki dovzhini 2 k displaystyle 2k parna Dovedennya Spochatku dovedemo neobhidnist umovi Pripustimo isnuye korin ps ps 2 p displaystyle psi psi 2 pi Rozglyanemo ciklichne predstavlennya ciyeyi perestanovki ps x 1 1 x l 1 1 x 1 m x l m m displaystyle psi x 1 1 x l 1 1 x 1 m x l m m Yaksho i j cikl x 1 x l i displaystyle x 1 x l i maye neparnu dovzhinu to pri pidnesenni perestanovki do kvadrata vin perejde v cikl x 1 x 3 x 2 t 1 x l i x 2 x 4 x 2 p x l i 1 displaystyle x 1 x 3 x 2t 1 x l i x 2 x 4 x 2p x l i 1 tezh neparnoyi dovzhini Tobto yaksho v perestanovci yakijs element nalezhav ciklovi neparnoyi dovzhini to i u kvadrati ciyeyi perestanovki element bude nalezhati ciklovi neparnoyi dovzhini Yaksho zh i j cikl x 1 x l i displaystyle x 1 x l i maye parnu dovzhinu to pri pidnesenni perestanovki do kvadrata vin perejde u dva cikli odnakovoyi dovzhini x 1 x 3 x 2 t 1 x l i 1 displaystyle x 1 x 3 x 2t 1 x l i 1 i x 2 x 4 x 2 p x l i displaystyle x 2 x 4 x 2p x l i Cikli parnoyi dovzhini u kvadrati perestanovki mogli utvoritis tilki z cikliv parnoyi dovzhini A otzhe yaksho ye odin cikl parnoyi dovzhini to obov yazkovo isnuye i inshij takoyi samoyi dovzhini Dovedennya dostatnosti viplivaye z algoritmu znahodzhennya korenya Opis algoritmu Predstaviti perestanovku v ciklichnomu viglyadi Pereviriti vikonannya umovi teoremi Yaksho ne vikonuyetsya to korin ne isnuye zavershiti robotu Peretvoriti kozhen cikl neparnoyi dovzhini x 1 x l displaystyle x 1 dots x l na cikl x 1 x l 1 2 1 x 2 x l 1 2 2 x k x l 1 2 k x l 1 2 1 x l x l 1 2 displaystyle x 1 x frac l 1 2 1 x 2 x frac l 1 2 2 dots x k x frac l 1 2 k dots x frac l 1 2 1 x l x frac l 1 2 Rozdiliti cikli parnoyi dovzhini na pari rivnoyi dovzhini Kozhnu paru cikliv x 1 1 x l 1 displaystyle x 1 1 x l 1 i x 1 2 x l 2 displaystyle x 1 2 x l 2 ob yednati v odin cikl x 1 1 x 1 2 x 2 1 x 2 2 x k 1 x k 2 x l 1 x l 2 displaystyle x 1 1 x 1 2 x 2 1 x 2 2 dots x k 1 x k 2 dots x l 1 x l 2 Ocinka skladnosti Kozhen iz 4 krokiv algoritmu mozhe buti vikonanij za chas O n displaystyle O n otzhe zagalna skladnist O n displaystyle O n Priklad vikoristannya Dlya prikladu znajdemo korin z perestanovki p 1 2 3 4 5 6 7 3 4 1 7 6 5 2 displaystyle pi begin pmatrix 1 amp 2 amp 3 amp 4 amp 5 amp 6 amp 7 3 amp 4 amp 1 amp 7 amp 6 amp 5 amp 2 end pmatrix Ciklichne predstavlennya p 2 4 7 1 3 5 6 displaystyle pi begin pmatrix 2 amp 4 amp 7 end pmatrix begin pmatrix 1 amp 3 end pmatrix begin pmatrix 5 amp 6 end pmatrix Cikliv dovzhini dva parna kilkist umova teoremi vikonuyetsya Peretvorimo cikl neparnoyi dovzhini 2 4 7 2 7 4 displaystyle begin pmatrix 2 amp 4 amp 7 end pmatrix to begin pmatrix 2 amp 7 amp 4 end pmatrix Peretvorimo paru cikliv parnoyi dovzhini 1 3 5 6 1 5 3 6 displaystyle begin pmatrix 1 amp 3 end pmatrix begin pmatrix 5 amp 6 end pmatrix to begin pmatrix 1 amp 5 amp 3 amp 6 end pmatrix Shukana perestanovka viglyadaye tak ps 1 2 3 4 5 6 7 5 7 6 2 3 1 4 displaystyle psi begin pmatrix 1 amp 2 amp 3 amp 4 amp 5 amp 6 amp 7 5 amp 7 amp 6 amp 2 amp 3 amp 1 amp 4 end pmatrix legko perekonatis sho ps 2 p displaystyle psi 2 pi Zauvazhennya Navedenij algoritm znahodit tilki odin korin v zagalnomu zh vipadku koreniv mozhe buti dekilka Perestanovki z povtorennyamRozglyanemo n elementiv m riznih tipiv prichomu v kozhnomu tipi vsi elementi odnakovi Todi perestanovki iz vsih cih elementiv z tochnistyu do poryadku rozmishennya odnotipnih elementiv nazivayutsya perestanovkami z povtorennyam Yaksho ki kilkist elementiv i go tipu to k 1 k 2 k m n displaystyle k 1 k 2 dots k m n i kilkist mozhlivih perestanovok z povtorennyami dorivnyuye multinomialnomu koeficiyentu n k 1 k 2 k m n k 1 k 2 k m displaystyle textstyle binom n k 1 k 2 dots k m frac n k 1 k 2 dots k m Div takozhPsevdovipadkova perestanovka Pidstanovka Algoritm sortuvannya RozmishennyaDzherelaV A Vishenskij M O Perestyuk Kombinatorika pershi kroki Kam yanec Podilskij Aksioma 2010 324 s ISBN 978 966 496 136 0 ukr en An Introduction to the Theory of Groups 4th Springer Graduate Texts in Mathematics 1994 532 s ISBN 978 0387942858 angl Donald Knut Sorting and Searching The Art of Computer Programming 3rd Massachusetts Addison Wesley 1998 T 3 780 s ISBN 0 201 89685 0 angl