Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Каждая из шести строк представляет собой перестановку трех разных шаров.

В математике , А перестановка из множества есть, грубо говоря, расположение ее членов в последовательность или линейный порядок , или если множество уже заказало, перегруппировка ее элементы. Слово «перестановка» также относится к действию или процессу изменения линейного порядка упорядоченного набора. [1]

Перестановки отличаются от комбинаций , которые представляют собой выбор некоторых членов набора независимо от порядка. Например, записанное в виде кортежей , существует шесть перестановок набора {1,2,3}, а именно: (1,2,3), (1,3,2), (2,1,3), (2 , 3,1), (3,1,2) и (3,2,1). Это все возможные порядки этого трехэлементного набора. Анаграммы слов, буквы которых отличаются друг от друга, также являются перестановками: буквы уже упорядочены в исходном слове, а анаграмма - это перестановка букв. Изучение перестановок конечных множеств - важная тема в области комбинаторики и теории групп .

Перестановки используются почти во всех областях математики и во многих других областях науки. В информатике они используются для анализа алгоритмов сортировки ; в квантовой физике для описания состояний частиц; и в биологии для описания последовательностей РНК .

Количество перестановок n различных объектов равно n  факториалу , обычно записываемому как n ! , что означает произведение всех положительных целых чисел, меньших или равных n .

Технически, перестановка множества S определяется как биекции от S к самому себе. [2] [3] То есть это функция от S до S, для которой каждый элемент встречается ровно один раз как значение изображения . Это связано с перестановкой элементов S, в которой каждый элемент s заменяется соответствующим f ( s ) . Например, указанная выше перестановка (3,1,2) описывается функцией, определенной как:

.

Совокупность всех перестановок набора образует группу, называемую симметрической группой набора. Групповая операция - это композиция (последовательное выполнение двух заданных перестановок), которая приводит к другой перегруппировке. Поскольку свойства перестановок не зависят от природы элементов набора, часто при изучении перестановок учитываются именно перестановки набора .

В элементарной комбинаторике k -перестановки или частичные перестановки представляют собой упорядоченные расположения k различных элементов, выбранных из набора. Когда k равно размеру набора, это перестановки набора.

В популярной головоломке « Кубик Рубика», изобретенной в 1974 году Эрно Рубиком , каждый поворот граней головоломки создает перестановку цветов поверхности.

История [ править ]

Перестановки, называемые гексаграммами, использовались в Китае в И Цзин ( Пиньинь : И Цзин) еще в 1000 году до нашей эры.

Аль-Халил (717–786), арабский математик и криптограф , написал Книгу криптографических сообщений . Он содержит первое использование перестановок и комбинаций , чтобы перечислить все возможные арабские слова с гласными и без них. [4]

Правило определения количества перестановок n объектов было известно в индийской культуре около 1150 года. В « Лилавати » индийского математика Бхаскары II содержится отрывок, который переводится как:

Произведением умножения начала и увеличения арифметического ряда на единицу и продолженного до количества знаков будут вариации числа с конкретными цифрами. [5]

В 1677 году Фабиан Стедман описал факториалы при объяснении количества перестановок колоколов в переменном звоне . Начиная с двух колокольчиков: «во-первых, два должны быть допущены для изменения двумя способами», что он иллюстрирует, показывая 1 2 и 2 1. [6] Затем он объясняет, что с тремя колокольчиками «трижды две цифры должны быть произведено из трех », что еще раз проиллюстрировано. Его объяснение включает в себя «отбросьте 3, и 1.2 останется; отбросьте 2, и 1.3 останется; отбросьте 1, и 2.3 останется». [7] Затем он переходит к четырем колокольчикам и повторяет аргумент отвержения, показывающий, что будет четыре разных набора из трех. По сути, это рекурсивный процесс. Он продолжает с пятью колокольчиками, используя метод «отбрасывания», и составляет итоговые 120 комбинаций. [8] Здесь он сдается и замечает:

Природа этих методов такова, что изменения одного числа включают изменения всех меньших чисел ... до такой степени, что кажется, что полный Звук изменений одного числа формируется путем объединения завершенных Звонков на всех меньших числах. в одно целое тело; [9]

Стедман расширяет рассмотрение перестановок; он продолжает рассматривать количество перестановок букв алфавита и лошадей из конюшни 20. [10]

Первый случай, когда кажущиеся несвязанными математические вопросы изучались с помощью перестановок, произошел примерно в 1770 году, когда Жозеф Луи Лагранж , изучая полиномиальные уравнения, заметил, что свойства перестановок корней уравнения связаны с возможностями Найди решение. Это направление работы в конечном итоге привело к работе Эвариста Галуа в теории Галуа , которая дает полное описание того, что возможно и что невозможно в отношении решения полиномиальных уравнений (с одним неизвестным) с помощью радикалов. В современной математике существует множество подобных ситуаций, в которых понимание проблемы требует изучения определенных перестановок, связанных с ней.

Перестановки без повторов [ править ]

Простейший пример перестановок - перестановки без повторов, где мы рассматриваем количество возможных способов размещения n элементов в n местах. Факторный имеет особое применение в определении числа перестановок в наборе , который не включает в себя повторы. Число n !, читаемое «n факториал», [11] - это как раз то количество способов, которыми мы можем переставить n вещей в новый порядок. Например, если у нас есть три фрукта: апельсин, яблоко и груша, мы можем съесть их в указанном порядке или изменить их (например, яблоко, груша, затем апельсин). Тогда точное количество перестановок . Число становится чрезвычайно большим по мере увеличения количества элементов (n).

Аналогичным образом, количество комбинаций r элементов из n объектов считается частичной перестановкой. Оно записывается как (читается как «n переставить г») и равно числу (также записанному как ). [12] [13] [14]

Определение [ править ]

В математических текстах принято обозначать перестановки строчными греческими буквами. Обычно используются либо и , либо и . [15]

Подстановки можно определить как биекции из множества S в себя. Все перестановки набора с n элементами образуют симметричную группу , обозначенную , где групповая операция - композиция функций . Таким образом, для двух перестановок и в группе выполняются четыре групповые аксиомы:

  1. Закрытие : если и есть, значит, так и есть
  2. Ассоциативность : Для любых трех перестановок ,
  3. Идентичность : существует перестановка идентичности, обозначаемая и определяемая для всех . Для любого ,
  4. Обратимость : для каждой перестановки существует так, что

В общем случае композиция двух перестановок не коммутативна , т. Е.

Как биекция набора самому себе, перестановка - это функция, которая выполняет перегруппировку набора, а не сама перегруппировка. Более старая и более элементарная точка зрения состоит в том, что перестановки - это сами перестановки. Чтобы различать эти два идентификатора, активные и пассивные идентификаторы иногда добавляются к термину перестановка , тогда как в старой терминологии используются подстановки и перестановки . [16]

Перестановка может быть разложена на один или несколько непересекающихся циклов , то есть орбиты , которые находятся путем многократного отслеживания применения перестановки к некоторым элементам. Например, перестановка, определяемая с помощью, имеет 1-цикл, в то время как перестановка, определенная с помощью и, имеет 2-цикл (подробности о синтаксисе см. В § Обозначение цикла ниже). В общем случае цикл длины k , то есть состоящий из k элементов, называется k -циклом.

Элемент в 1-цикле называется фиксированной точкой перестановки. Перестановка без неподвижных точек называется расстройством . 2-циклы называются транспозициями ; такие перестановки просто меняют два элемента, оставляя остальные неизменными.

Обозначения [ править ]

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

Двухстрочная запись [ править ]

В Коши «с двумя линиями обозначений , [17] один перечисляет элементы S в первом ряду, и для каждого из них его образ под ним во втором ряду. Например, конкретная перестановка множества S = {1,2,3,4,5} может быть записана как:

это означает, что σ удовлетворяет σ (1) = 2 , σ (2) = 5 , σ (3) = 4 , σ (4) = 3 и σ (5) = 1 . Элементы S могут появляться в любом порядке в первой строке. Эту перестановку можно также записать как:

или же

Однострочные обозначения [ править ]

Если существует «естественный» порядок элементов S , скажем [a] , то его используют для первой строки двухстрочной записи:

В этом предположении можно опустить первую строку и записать перестановку в однострочном обозначении как

,

то есть упорядоченное расположение S. [18] [19] Следует проявлять осторожность, чтобы отличать однострочное обозначение от обозначения цикла, описанного ниже. В математической литературе принято опускать круглые скобки для однострочных обозначений и использовать их для обозначений циклов. Однострочное обозначение также называется словесным представлением перестановки. [20] В приведенном выше примере будет 2 5 4 3 1, поскольку для первой строки предполагается естественный порядок 1 2 3 4 5. (Обычно эти записи разделяются запятыми только в том случае, если некоторые из них состоят из двух или более цифр.) Эта форма более компактна и распространена в элементарной комбинаторике и информатике.. Это особенно полезно в приложениях, где элементы S или перестановки должны сравниваться как больше или меньше.

Обозначение цикла [ править ]

Обозначение цикла описывает эффект многократного применения перестановки к элементам набора. Он выражает перестановку как продукт циклов ; поскольку различные циклы не пересекаются , это называется «разложением на непересекающиеся циклы». [b]

Чтобы записать перестановку в обозначении цикла, поступают следующим образом:

  1. Напишите открывающую скобку, затем выберите произвольный элемент x из и запишите его:
  2. Затем проследите орбиту x ; то есть запишите его значения при последовательном применении :
  3. Повторяйте, пока значение не вернется к x, и запишите закрывающую скобку вместо x :
  4. Теперь перейдите к элементу y из S , который еще не записан, и действуйте таким же образом:
  5. Повторяйте, пока все элементы S не будут записаны циклами.

Так как для каждого нового цикла начальная точка может быть выбрана по-разному, в целом существует множество различных обозначений цикла для одной и той же перестановки; в приведенном выше примере:

1-циклы часто опускаются из обозначения цикла, если контекст понятен; для любого элемента x в S, не появляющегося ни в каком цикле, неявно предполагается . [21] тождественная перестановка , которая состоит только из 1-циклов, может быть обозначена с помощью одного 1-цикла (х), по числу 1, [C] или с помощью идентификатора . [22] [23]

Удобная особенность обозначения цикла состоит в том, что можно найти инверсию перестановки, просто изменив порядок элементов в циклах перестановки. Например

Обозначение канонического цикла (также известное как стандартная форма) [ править ]

В некоторых комбинаторных контекстах полезно зафиксировать определенный порядок элементов в циклах и самих (непересекающихся) циклов. Миклош Бона называет следующие варианты упорядочения нотацией канонического цикла :

  • в каждом цикле самый большой элемент указывается первым
  • циклы сортируются в порядке возрастания их первого элемента

Например, (312) (54) (8) (976) - это перестановка в канонической записи цикла. [24] Каноническая запись цикла не пропускает одноцикловых.

Ричард П. Стэнли называет такой же выбор представления «стандартным представлением» перестановки. [25] и Мартин Айгнер использует термин «стандартная форма» для обозначения того же понятия. [20] Сергей Китаев также использует терминологию «стандартной формы», но меняет оба варианта; то есть каждый цикл сначала перечисляет свой наименьший элемент, а циклы сортируются в порядке убывания их наименьшего элемента, то есть первых элементов. [26]

Состав перестановок [ править ]

Есть два способа обозначить композицию двух перестановок. - функция, которая отображает любой элемент x набора в . Самая правая перестановка применяется к аргументу первой [27] из-за способа написания приложения функции.

Так как композиция функций является ассоциативной , поэтому является операция композиции на перестановках: . Следовательно, произведения более двух перестановок обычно пишутся без добавления скобок для выражения группировки; они также обычно пишутся без точки или другого знака для обозначения композиции.

Некоторые авторы предпочитают, чтобы первым действовал крайний левый фактор, [28] [29] [30], но для этого перестановки должны быть записаны справа от их аргумента, часто в виде экспоненты, где σ, действующий на x , записывается как x σ ; тогда произведение определяется как x σ · π = ( x σ ) π . Однако это дает другое правило для умножения перестановок; в этой статье используется определение, в котором сначала применяется самая правая перестановка.

Другие варианты использования термина « перестановка» [ править ]

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

k -перестановки n [ править ]

Более слабое значение термина « перестановка» , которое иногда используется в текстах по элементарной комбинаторике, обозначает те упорядоченные расположения, в которых ни один элемент не встречается более одного раза, но без требования использования всех элементов из данного набора. Это не перестановки, за исключением особых случаев, а естественные обобщения концепции упорядоченного расположения. Действительно, это использование часто включает рассмотрение компоновок фиксированной длины  k элементов, взятых из данного набора размера n , другими словами, эти k -перестановки n представляют собой различные упорядоченные компоновки k -элементного подмножества n -множества (иногда называемые вариациями илиаранжировки в более старой литературе [d] ). Эти объекты также известны как частичные перестановки или последовательности без повторов , термины, которые избегают путаницы с другим, более распространенным значением слова «перестановка». Число таких -permutations из обозначается по- разному такими символами , как , , , , или , и его значение определяется произведением [31]

,

который равен 0, когда k > n , и в противном случае равен

Продукт хорошо определен без предположения, что он является неотрицательным целым числом, а также имеет значение вне комбинаторики; он известен как символ Похгаммера или в качестве -го падения факторной мощности из .

Такое использование термина « перестановка» тесно связано с термином « комбинация» . К -элементное сочетание п -set S является K элементом подмножество S , элементы которого не упорядочены. Принимая все к элементным подмножествам S и заказным каждому из них всех возможных способов, мы получаем все K -permutations из S . Количество k- комбинаций n -множества C ( n , k ), следовательно, связано с количеством k-перестановки n на:

Эти числа также известны как биномиальные коэффициенты и обозначаются .

Перестановки с повторением [ править ]

Упорядоченные расположения n элементов набора S , где разрешено повторение, называются n -наборами . Иногда их называют перестановками с повторением , хотя в целом они не являются перестановками. В некоторых контекстах они также называются словами в алфавите S. Если множество S имеет K элементов, число п -наборов над S является Там нет ограничений на том , как часто элемент может появляться в п -кратного, но если ограничения накладываются на том , как часто может появиться элемент, эта формула более не действительно.

Перестановки мультимножеств [ править ]

Перестановки мультимножеств

Если М является конечным мультимножеством , то мультимножеством перестановка является упорядоченное расположение элементов М , в которой каждый элемент появляется число раз , равное точности его кратность в М . Анаграмма слова , имеющего несколько повторяющихся букв является примером мультинабора перестановки. [е] Если кратности элементов М (принятые в некотором порядке) являются , , ..., и их сумма (то есть, размер М ) является п , то число мультимножеств перестановок M задается мультиномиальный коэффициент ,[32]

Например, количество различных анаграмм слова MISSISSIPPI составляет: [33]

.

К-перестановки из мультинабора М представляет собой последовательность длину к элементам М , в которой каждый элемент появляется несколько раз меньше , чем или равно его кратности в М (элемент в числе повторений ).

Круговые перестановки [ править ]

Перестановки, когда их рассматривают как расположения, иногда называют линейно упорядоченными расположениями. В этих механизмах есть первый элемент, второй элемент и так далее. Если, однако, объекты расположены по кругу, этот выделенный порядок больше не существует, то есть в расположении нет «первого элемента», любой элемент можно рассматривать как начало расположения. Расположение объектов по кругу называется круговой перестановкой . [34] [f] Их можно формально определить как классы эквивалентности обычных перестановок объектов для отношения эквивалентности, порожденного перемещением последнего элемента линейного устройства на передний план.

Две круговые перестановки эквивалентны, если одна может быть повернута в другую (то есть циклически повторяться без изменения относительного положения элементов). Следующие две круговые перестановки четырех букв считаются одинаковыми.

 1 4 4 3 2 1 2 3

Круговое расположение следует читать против часовой стрелки, поэтому следующие два не эквивалентны, поскольку никакое вращение не может привести друг к другу.

 1 1 4 3 3 4 2 2

Число круговых перестановок множества S с n элементами равно ( n  - 1) !.

Свойства [ править ]

Количество перестановок n различных объектов равно n !.

Число n -перестановок с k непересекающимися циклами - это беззнаковое число Стирлинга первого рода , обозначаемое c ( n , k ) . [35]

Тип перестановки [ править ]

Циклы разбиения перестановок Множество так длин циклов перестановки образуют перегородку из п называется тип цикла из . В типе цикла есть «1» для каждой фиксированной точки σ, «2» для каждой транспозиции и так далее. Тип цикла - (3,2,2,1), который иногда записывается в более компактной форме как [1 1 2 2 3 1 ].

Общий вид:, где - количество циклов соответствующей длины. Количество перестановок определенного типа [36]

.

Сопряжение перестановок [ править ]

В общем, составление перестановок, записанных в нотации цикла, не следует легко описываемому образцу - циклы композиции могут отличаться от составляемых. Однако структура цикла сохраняется в частном случае сопряжения перестановки другой перестановкой , что означает формирование продукта . Здесь, является сопряженным из и его цикла обозначение можно получить, взяв обозначение цикла для и применения ко всем записям в ней. [37] Отсюда следует, что две перестановки сопряжены именно тогда, когда они имеют один и тот же тип.

Порядок перестановки [ править ]

Порядок перестановки - наименьшее положительное целое число m, чтобы . Это наименьшее общее кратное длины его цикла. Например, порядок является .

Четность перестановки [ править ]

Каждую перестановку конечного множества можно выразить как произведение транспозиций. [38] Хотя может существовать много таких выражений для данной перестановки, все они содержат четное или нечетное количество транспозиций. Таким образом, все перестановки можно классифицировать как четные или нечетные в зависимости от этого числа.

Этот результат можно расширить , присвоив каждой перестановке знак , записанный . если - четное, а если - нечетное. Тогда для двух перестановок и

Следует, что

Матричное представление [ править ]

Составление перестановок соответствует умножению матриц перестановок.

Можно представить перестановку {1, 2, ..., n } в виде матрицы размера n × n . Есть два естественных способа сделать это, но только один, для которого умножение матриц соответствует умножению перестановок в том же порядке: это тот, который связывает с σ матрицу M , элемент M i , j которой равен 1, если i = σ ( j ) и 0 в противном случае. Результирующая матрица имеет ровно одну запись 1 в каждом столбце и в каждой строке и называется матрицей перестановок . Вот список этих матриц для перестановок 4 элементов. В
Таблица Кэли справа показывает эти матрицы для перестановок из 3 элементов.

Лемма Фоата о переходе [ править ]

Между однострочным и каноническим циклическим обозначением существует взаимосвязь. Рассмотрим перестановку в канонической нотации цикла, если мы удалим ее круглые скобки, мы получим перестановку в однострочной нотации. Лемма Фоата о переходе устанавливает природу этого соответствия как биекции на множестве n -перестановок (на себя). [39] Ричард П. Стэнли называет это соответствие фундаментальной биекцией . [25]

Позвольте быть преобразованием, стирающим скобки. Обратное к немного менее интуитивно понятно. Начиная с однострочной записи , первый цикл в канонической записи цикла должен начинаться с . Пока следующие элементы меньше чем , мы находимся в том же цикле. Второй цикл начинается с наименьшего индекса, такого что . Другими словами, он больше, чем все остальное слева от него, поэтому он называется максимумом слева направо . Каждый цикл в канонической нотации цикла начинается с максимума слева направо. [39]

Например, в однострочном обозначении 5 - это первый элемент, больший 3, поэтому должен быть первый цикл . Тогда 8 - следующий элемент больше 5, значит, второй цикл . Поскольку 9 больше 8, это сам по себе цикл. Наконец, 9 больше, чем все остальные элементы справа, поэтому последний цикл больше .

В качестве первого следствия, число п-перестановки с точно K слева-направо максимумами также равно не имеющие маркировки Стирлинга числом первого рода , . Кроме того, отображение Фоаты принимает n -перестановку с k -слабыми выходами на n -перестановки с k - 1 восхождением. [39] Например, (2) (31) = 321 имеет два слабых остатка (с индексом 1 и 2), тогда как f (321) = 231 имеет одно восхождение (с индексом 1, то есть от 2 до 3).

Перестановки полностью упорядоченных множеств [ править ]

В некоторых приложениях элементы переставляемого набора будут сравниваться друг с другом. Это требует, чтобы набор S имел общий порядок, чтобы можно было сравнивать любые два элемента. Набор {1, 2, ..., n } полностью упорядочен обычным отношением «≤», поэтому он является наиболее часто используемым набором в этих приложениях, но в целом подойдет любой полностью упорядоченный набор. В этих приложениях вид упорядоченной компоновки перестановки необходим, чтобы говорить о позициях в перестановке.

Есть целый ряд свойств, которые непосредственно связаны с общим упорядочением S .

Подъемы, спуски, спуски и бега [ править ]

Подъем перестановок  сг из п является любая позиция , я  <  п , где следующее значение больше , чем текущий. То есть, если σ  =  σ 1 σ 2 ... σ n , то i - восхождение, если σ i  <  σ i +1 .

Например, перестановка 3452167 имеет восхождения (в позициях) 1, 2, 5 и 6.

Точно так же спуск - это позиция i  <  n с σ i  >  σ i +1 , поэтому каждый i с либо подъемом, либо спуском  σ .

Восходящий запуск перестановки является непустым увеличивая непрерывную подпоследовательность перестановки , которая не может быть продлена на обоих концах; он соответствует максимальной последовательности последовательных восхождений (последний может быть пустым: между двумя последовательными спусками еще есть восходящий пробег длиной 1). Напротив, возрастающая подпоследовательность перестановки не обязательно является непрерывной: это возрастающая последовательность элементов, полученная в результате перестановки путем пропуска значений в некоторых позициях. Например, перестановка 2453167 имеет восходящие прогоны 245, 3 и 167, в то время как она имеет возрастающую подпоследовательность 2367.

Если перестановка имеет k  - 1 спусков, то это должно быть объединение k возрастающих последовательностей . [40]

Число перестановок n с k восхождениями является (по определению) числом Эйлера ; это также количество перестановок n с k спусками. Однако некоторые авторы определяют число Эйлера как количество перестановок с k восходящими последовательностями , что соответствует k - 1 спускам. [41]

Избыток перестановки σ 1 σ 2 ... σ n - это такой индекс j , что σ j > j . Если неравенство не строгое (то есть σ jj ), то j называется слабым отсутствием . Количество n -перестановок с k выходами совпадает с количеством n -перестановок с k спусками. [42]

Инверсии [ править ]

В 15 головоломки цель состоит в том, чтобы получить квадраты в порядке возрастания. Исходные позиции, которые имеют нечетное количество инверсий, решить невозможно. [43]

Инверсии перестановок  сг является пара ( я , J ) позиций , где элементы матрицы перестановки находятся в порядке , противоположном: и . [44] Таким образом, спуск - это просто инверсия в двух соседних позициях. Например, перестановка σ = 23154 имеет три инверсии: (1, 3), (2, 3) и (4, 5) для пар элементов (2, 1), (3, 1) и ( 5, 4).

Иногда инверсия определяется как пара значений ( σ i , σ j ) , порядок которых обратный; это не имеет значения для количества инверсий, и эта пара (обратная) также является инверсией в указанном выше смысле для обратной перестановки σ −1 . Количество инверсий - важная мера того, в какой степени элементы перестановки неупорядочены; то же самое для σ и для σ −1 . Чтобы привести перестановку с k инверсиями в порядок (то есть преобразовать ее в тождественную перестановку), последовательно применяя (правое умножение на)смежные транспозиции всегда возможны и требуют последовательности из k таких операций. Более того, любой разумный выбор для смежных транспозиций будет работать: достаточно выбрать на каждом шаге транспонирование i и i + 1, где i - спуск перестановки, измененной до сих пор (так что транспонирование удалит этот конкретный спуск, хотя это может создать другие спуски). Это так, потому что применение такой перестановки уменьшает количество инверсий на 1; пока это число не равно нулю, перестановка не является тождеством, поэтому она имеет по крайней мере один спуск. Пузырьковая сортировка и сортировка вставкойможно интерпретировать как отдельные экземпляры этой процедуры, чтобы упорядочить последовательность. Между прочим, эта процедура доказывает, что любую перестановку σ можно записать как произведение смежных транспозиций; для этого можно просто обратить любую последовательность таких перестановок, которая преобразует σ в тождество. Фактически, перечисляя все последовательности смежных транспозиций, которые преобразовали бы σ в идентичность, можно получить (после обращения) полный список всех выражений минимальной длины, записывая σ как произведение смежных транспозиций.

Количество перестановок n с k инверсиями выражается числом Махона [45], это коэффициент при X k в разложении произведения

который также известен (с заменой q на X ) как q-факториал [ n ] q ! . Расширение продукта появляется в колье (комбинаторика) .

Перестановки в вычислениях [ править ]

Нумерация перестановок [ править ]

Один из способов представления перестановок n - это целое число N с 0 ≤  N  <  n !, При условии, что даны удобные методы для преобразования между числом и представлением перестановки в виде упорядоченного расположения (последовательности). Это дает наиболее компактное представление произвольных перестановок, и в вычислениях особенно привлекательно, когда n достаточно мало, чтобы N можно было хранить в машинном слове; для 32-битных слов это означает n  ≤ 12, а для 64-битных слов это означает n  ≤ 20. Преобразование может быть выполнено через промежуточную форму последовательности чисел d n , d n −1., ..., d 2 , d 1 , где d i - неотрицательное целое число, меньшее i (можно опустить d 1 , поскольку оно всегда равно 0, но его присутствие упрощает описание последующего преобразования в перестановку) . Тогда первым шагом будет просто выразить N в факториальной системе счисления , которая представляет собой просто конкретное смешанное представление системы счисления , где для чисел до n ! основания для последовательных цифр - n , n - 1 , ..., 2, 1. На втором этапе эта последовательность интерпретируется как код Лемера. или (почти то же самое) в виде инверсионной таблицы.

В коде Лемера для перестановки  σ число d n представляет выбор, сделанный для первого члена  σ 1 , число d n −1 представляет выбор, сделанный для второго члена σ 2 среди оставшихся n - 1 элементов множества. , и так далее. Точнее, каждый d n + 1− i дает количество оставшихся элементов строго меньшее, чем член σ i . Поскольку эти оставшиеся элементы обязательно появятся как некоторый более поздний член σ j , цифраd n + 1− i считает инверсии ( i , j ), включающие i, как меньший индекс (количество значений j, для которых i  <  j и σ i  >  σ j ). Таблица инверсии для  σ очень похожа, но здесь d n + 1 - k подсчитывает количество инверсий ( i , j ), где k  =  σ j встречается как меньшее из двух значений, появляющихся в инвертированном порядке.[46] Обе кодировки можно визуализироватьпомощью п  по  п Rothe схемы [47] (названныйчесть Heinrich августа Роты )в котором точка на ( я , σ я ) пометить записи перестановки, и крестточке ( я , сг j ) отмечает инверсию ( i , j ); по определению инверсий крест появляется в любом квадрате, который стоит как перед точкой ( j , σ j ) в его столбце, так и перед точкой ( i , σ i) в своем ряду. Код Лемера перечисляет количество крестов в последовательных строках, а таблица инверсии перечисляет количество крестов в последовательных столбцах; это просто код Лемера для обратной перестановки, и наоборот.

Чтобы эффективно преобразовать код Лемера d n , d n −1 , ..., d 2 , d 1 в перестановку упорядоченного множества S , можно начать со списка элементов S в порядке возрастания, а для i увеличивая с 1 до n, установите σ i до элемента в списке, которому предшествуют d n + 1− i других, и удалите этот элемент из списка. Чтобы преобразовать таблицу инверсии d n , d n −1 , ..., d2 , d 1 в соответствующую перестановку, можно перемещать числа от d 1 до d n , вставляя элементы S от наибольшего к наименьшему в изначально пустую последовательность; на шаге, использующем номер d из таблицы инверсии, элемент из S вставлен в последовательность в точке, где ему предшествуют уже присутствующие d элементов. В качестве альтернативы можно было бы обрабатывать числа из таблицы инверсии и элементы S в обратном порядке, начиная со строки из n пустых слотов, и на каждом шаге размещать элемент из Sв пустой слот, которому предшествуют d других пустых слотов.

Преобразование последовательных натуральных чисел в факториальную систему счисления производит эти последовательности в лексикографическом порядке (как в случае с любой смешанной системой счисления с основанием), а дальнейшее преобразование их в перестановки сохраняет лексикографический порядок, при условии, что используется интерпретация кода Лемера (с использованием таблиц инверсии , каждый получает другой порядок, когда сначала сравнивают перестановки по месту их записей 1, а не по значению их первых записей). Сумма чисел в представлении факториальной системы счисления дает количество инверсий перестановки, а четность этой суммы дает сигнатуруперестановки. Более того, позиции нулей в таблице инверсии дают значения максимумов перестановки слева направо (в примере 6, 8, 9), а позиции нулей в коде Лемера - это позиции правого - минимумы слева (в примере позиционируются 4, 8, 9 значений 1, 2, 5); это позволяет вычислить распределение таких экстремумов среди всех перестановок. Перестановка с кодом Лемера d n , d n −1 , ..., d 2 , d 1 имеет восхождение n - i тогда и только тогда, когда d id i + 1 .

Алгоритмы генерации перестановок [ править ]

При вычислении может потребоваться сгенерировать перестановки данной последовательности значений. Методы, лучше всего приспособленные для этого, зависят от того, нужны ли какие-то случайно выбранные перестановки или все перестановки, и, в последнем случае, требуется конкретный порядок. Другой вопрос: нужно ли учитывать возможное равенство записей в данной последовательности; если это так, следует только генерировать различные перестановки мультимножества последовательности.

Очевидный способ сгенерировать перестановки n - сгенерировать значения для кода Лемера (возможно, используя представление целых чисел до n в факториальной системе счисления !) И преобразовать их в соответствующие перестановки. Однако последний шаг, хотя и прост, сложно реализовать эффективно, поскольку он требует n операций, каждая из которых - выбор из последовательности и удаление из нее в произвольной позиции; из очевидных представлений последовательности в качестве массива или связанного списка , как требуется (по разным причинам) около п 2 /4 операций , чтобы выполнить преобразование. С nвероятно, будет довольно маленьким (особенно если требуется генерация всех перестановок), что не является большой проблемой, но оказывается, что как для случайной, так и для систематической генерации есть простые альтернативы, которые работают значительно лучше. По этой причине не представляется полезным, хотя, безусловно, возможно, использовать специальную структуру данных, которая позволила бы выполнить преобразование из кода Лемера в перестановку за время O ( n log n ) .

Случайная генерация перестановок [ править ]

Для генерации случайных перестановок данной последовательности из n значений не имеет значения, применяет ли кто-либо случайно выбранную перестановку n к последовательности или выбирает случайный элемент из набора различных (мультимножественных) перестановок последовательности. Это потому, что даже если в случае повторяющихся значений может быть много различных перестановок n, которые приводят к одной и той же перестановочной последовательности, количество таких перестановок одинаково для каждого возможного результата. В отличие от систематической генерации, которая становится невозможной для больших n из-за роста числа n !, нет оснований предполагать, что n будет малым для случайной генерации.

Основная идея генерации случайной перестановки - это случайное генерирование одного из n ! последовательности целых чисел d 1 , d 2 , ..., d n, удовлетворяющие 0 ≤ d i < i (поскольку d 1 всегда равен нулю, его можно опустить), и преобразовать его в перестановку через биективное соответствие. Для последнего соответствия можно интерпретировать (обратную) последовательность как код Лемера, и это дает метод генерации, впервые опубликованный в 1938 году Рональдом Фишером и Фрэнком Йейтсом . [48]Хотя в то время компьютерная реализация не была проблемой, этот метод страдает от описанной выше трудности эффективного преобразования кода Лемера в перестановку. Это можно исправить, используя другое биективное соответствие: после использования d i для выбора элемента среди i оставшихся элементов последовательности (для уменьшения значений i ) вместо удаления элемента и сжатия последовательности путем смещения других элементов на одно место вниз , один обменэлемент с последним оставшимся элементом. Таким образом, элементы, оставшиеся для выбора, образуют последовательный диапазон в каждый момент времени, даже если они могут не появляться в том же порядке, что и в исходной последовательности. Преобразование последовательности целых чисел в перестановки несколько сложно, но можно увидеть, что каждая перестановка производится точно одним способом, путем непосредственной индукции . Когда выбранный элемент оказывается последним оставшимся элементом, операцию обмена можно не выполнять. Это не происходит достаточно часто, чтобы гарантировать проверку условия, но последний элемент должен быть включен в число кандидатов выбора, чтобы гарантировать, что все перестановки могут быть сгенерированы.

Результирующий алгоритм генерации случайной перестановки может быть описан в псевдокоде следующим образом :a[0], a[1], ..., a[n − 1]

для  i  от  n  до 2 do  d i ← случайный элемент из {0, ..., i - 1} поменять местами  a [ d i ] и a [ i - 1]

Это можно совместить с инициализацией массива следующим образомa[i] = i

для  i  от 0 до  n −1 do  d i +1 ← случайный элемент из {0, ..., i } a [ i ] ← a [ d i +1 ] a [ d i +1 ] ← i

Если d i +1 = i , первое присвоение скопирует неинициализированное значение, но второе перезапишет его правильным значением i .

Однако алгоритм Фишера-Йейтса не является самым быстрым алгоритмом для генерации перестановки, поскольку алгоритм Фишера-Йейтса по сути является последовательным алгоритмом, и процедуры «разделяй и властвуй» могут достичь того же результата параллельно. [49]

Генерация в лексикографическом порядке [ править ]

Есть много способов систематически генерировать все перестановки заданной последовательности. [50] Один классический, простой и гибкий алгоритм основан на поиске следующей перестановки в лексикографическом порядке , если она существует. Он может обрабатывать повторяющиеся значения, в этом случае он генерирует каждую отдельную перестановку мультимножества один раз. Даже для обычных перестановок это значительно эффективнее, чем создание значений для кода Лемера в лексикографическом порядке (возможно, с использованием факториальной системы счисления ) и преобразование их в перестановки. Он начинается с сортировки последовательности по (слабо) возрастаниюпорядка (что дает его лексикографически минимальную перестановку), а затем повторяет переход к следующей перестановке, пока она будет найдена. Этот метод восходит к Нараяне Пандиту в Индии 14 века, и его часто открывали заново. [51]

Следующий алгоритм лексикографически генерирует следующую перестановку после данной перестановки. Он изменяет данную перестановку на месте.

  1. Найдите наибольший индекс k такой, что a [ k ] < a [ k + 1] . Если такого индекса не существует, перестановка является последней перестановкой.
  2. Найдите наибольший индекс l, превышающий k, такой, что a [ k ] < a [ l ] .
  3. Поменяйте местами значение a [ k ] на значение a [ l ].
  4. Переверните последовательность от a [ k + 1] до последнего элемента a [ n ] включительно .

Например, с учетом последовательности [1, 2, 3, 4] (которая находится в порядке возрастания) и с учетом того, что индекс отсчитывается от нуля , шаги следующие:

  1. Индекс к = 2, так как 3 помещается в индекс , который удовлетворяет условию быть наибольший индекс , который по - прежнему меньше , чем в [ K + 1] , который является 4.
  2. Индекс l = 3, потому что 4 - единственное значение в последовательности, которое больше 3, чтобы удовлетворять условию a [ k ] < a [ l ].
  3. Значения a [2] и a [3] меняются местами, чтобы сформировать новую последовательность [1,2,4,3].
  4. Последовательность после k -индекса a [2] до последнего элемента обратная. Поскольку только одно значение находится после этого индекса (3), последовательность в этом случае остается неизменной. Таким образом меняется лексикографический преемник начального состояния: [1,2,4,3].

Следуя этому алгоритму, следующая лексикографическая перестановка будет [1,3,2,4], а 24-я перестановка будет [4,3,2,1], в которой точка a [ k ] < a [ k + 1] будет не существует, что указывает на то, что это последняя перестановка.

Этот метод использует около 3 сравнений и 1,5 перестановки на перестановку, амортизируемых по всей последовательности, не считая начальной сортировки. [52]

Генерация с минимальными изменениями [ править ]

Альтернатива вышеупомянутому алгоритму, алгоритм Штейнхауса – Джонсона – Троттера , генерирует упорядочение всех перестановок данной последовательности со свойством, что любые две последовательные перестановки на его выходе отличаются заменой двух соседних значений. Такой порядок перестановок был известен английским звонарем 17-го века, среди которых он был известен как «простые изменения». Одним из преимуществ этого метода является то, что небольшое количество изменений от одной перестановки к другой позволяет реализовать метод за постоянное время на перестановку. То же самое может также легко сгенерировать подмножество четных перестановок, опять же за постоянное время на перестановку, пропуская все остальные перестановки вывода. [51]

Альтернативой Штейнхаусу – Джонсону – Троттеру является алгоритм Хипа , [53], который, как сказал Роберт Седжвик в 1977 году, является самым быстрым алгоритмом генерации перестановок в приложениях. [50]

На следующем рисунке показаны выходные данные всех трех вышеупомянутых алгоритмов для генерации всех перестановок длины и шести дополнительных алгоритмов, описанных в литературе.

Упорядочение всех перестановок длины, генерируемых разными алгоритмами. Перестановки обозначены цветом, где  1 ,  2 ,  3 ,  4 . [54]
  1. Лексикографическая упорядоченность;
  2. Алгоритм Штейнхауса – Джонсона – Троттера ;
  3. Алгоритм кучи ;
  4. Алгоритм перестановки звезды Эрлиха: [51] на каждом шаге первая запись перестановки заменяется более поздней записью;
  5. Алгоритм изменения префикса Закса: [55] на каждом шаге префикс текущей перестановки меняет местами для получения следующей перестановки;
  6. Алгоритм Савады-Вильямса: [56] каждая перестановка отличается от предыдущей либо циклическим сдвигом влево на одну позицию, либо заменой первых двух записей;
  7. Алгоритм Корбетта: [57] каждая перестановка отличается от предыдущей циклическим сдвигом влево некоторого префикса на одну позицию;
  8. Упорядочение по одной дорожке: [58] каждый столбец представляет собой циклический сдвиг других столбцов;
  9. Однодорожечный код Грея: [58] каждый столбец представляет собой циклический сдвиг других столбцов, плюс любые две последовательные перестановки отличаются только одним или двумя транспозициями.

Меандрические перестановки [ править ]

Меандрические системы порождают меандрические перестановки , особое подмножество альтернативных перестановок . Альтернативная перестановка набора {1, 2, ..., 2 n } - это циклическая перестановка (без фиксированных точек), такая, что цифры в форме циклической записи чередуются между нечетными и четными целыми числами. Меандрические перестановки полезны при анализе вторичной структуры РНК. Не все альтернативные перестановки являются меандрическими. Модификация алгоритма Хипа использовалась для генерации всех альтернативных перестановок порядка n (то есть длины 2 n ) без генерации всех (2 n )! перестановки. [59] [ ненадежный источник? ] Генерация этих альтернативных перестановок необходима, прежде чем они будут проанализированы, чтобы определить, являются ли они меандрическими или нет.

Алгоритм рекурсивный. В следующей таблице показаны этапы процедуры. На предыдущем шаге были сгенерированы все альтернативные перестановки длины 5. Три копии каждого из них имеют цифру «6», добавленную к правому концу, а затем применяется другое транспонирование, включающее эту последнюю запись, и предыдущую запись в четной позиции (включая идентичность, то есть без транспонирования).

Приложения [ править ]

Перестановки используются в компоненте перемежителя алгоритмов обнаружения и исправления ошибок , таких как турбокоды , например, стандарт мобильной связи 3GPP Long Term Evolution использует эти идеи (см. Техническую спецификацию 3GPP 36.212 [60] ). Такие приложения поднимают вопрос о быстрой генерации перестановок, удовлетворяющих определенным желаемым свойствам. Один из методов основан на перестановке многочленов . Также в качестве основы для оптимального хеширования при хешировании уникальной перестановки. [61]

См. Также [ править ]

  • Альтернативная перестановка
  • Свертка
  • Циклический порядок
  • Четные и нечетные перестановки
  • Перестановка Иосифа
  • Символ Леви-Чивита
  • Список тем перестановок
  • Основной индекс
  • Категория перестановки
  • Группа перестановок
  • Шаблон перестановки
  • Представление перестановки (симметрическая группа)
  • Вероятность
  • Номера Rencontres
  • Сортировочная сеть
  • Подстановочный шифр
  • Суперпаттерн
  • Суперперестановка
  • Двенадцатикратный путь
  • Слабый порядок перестановок

Примечания [ править ]

  1. ^ Порядок часто понимается неявно. Набор целых чисел естественно записывается от наименьшего к наибольшему; набор букв записывается в лексикографическом порядке. Для других наборов необходимо явно указать естественный порядок.
  2. ^ Из-за вероятной возможности путаницы обозначение цикла не используется в сочетании с однострочным обозначением (последовательностями) для перестановок.
  3. ^ 1 часто используется для представления элемента идентичности в некоммутативной группе
  4. ^ Точнее вариации без повторов . Этот термин все еще распространен в других языках и чаще всего встречается в переводе на современный английский язык.
  5. ^ Естественный порядок в этом примере - это порядок букв в исходном слове.
  6. ^ В более старых текстах круговая перестановка иногда использовалась как синоним циклической перестановки , но это больше не используется. См. Кармайкл (1956 , стр.7).

Ссылки [ править ]

  1. ^ Вебстер (1969)
  2. Маккой (1968 , стр.152)
  3. ^ Nering (1970 , стр. 86)
  4. ^ Broemeling, Лайл Д. (1 ноября 2011). «Отчет о ранних статистических выводах в арабской криптологии». Американский статистик . 65 (4): 255–257. DOI : 10.1198 / tas.2011.10191 . S2CID  123537702 .
  5. Перейти ↑ Biggs, NL (1979). «Корни комбинаторики». Historia Math . 6 (2): 109–136. DOI : 10.1016 / 0315-0860 (79) 90074-0 .
  6. ^ Stedman 1677 , стр. 4.
  7. ^ Stedman 1677 , стр. 5.
  8. ^ Stedman 1677 , стр. 6-7.
  9. ^ Stedman 1677 , стр. 8.
  10. ^ Stedman 1677 , стр. 13-18.
  11. ^ "Сборник математических символов" . Математическое хранилище . 2020-03-01 . Проверено 10 сентября 2020 .
  12. ^ «Список вероятностных и статистических символов» . Математическое хранилище . 2020-04-26 . Проверено 10 сентября 2020 .
  13. ^ «Комбинации и перестановки» . www.mathsisfun.com . Проверено 10 сентября 2020 .
  14. ^ Вайсштейн, Эрик В. «Перестановка» . mathworld.wolfram.com . Проверено 10 сентября 2020 .
  15. ^ Шайнерман, Эдвард А. (5 марта 2012 г.). «Глава 5: Функции» . Математика: дискретное введение (3-е изд.). Cengage Learning. п. 188. ISBN 978-0840049421. Архивировано 5 февраля 2020 года . Проверено 5 февраля 2020 года . Принято использовать строчные буквы греческого алфавита (особенно π, σ и τ) для обозначения перестановок.
  16. ^ Кэмерон 1994 , стр. 29, сноска 3.
  17. ^ Wussing, Ганс (2007), Генезис Аннотация группы Концепция: Вклад в историю происхождения абстрактной теории групп , Courier Dover Publications, стр. 94, ISBN 9780486458687, Коши использовали его перестановку обозначение- , в которой механизмы написаны друг под другими и оба заключены в круглых скобках, в первый раз в 1815 году.
  18. Перейти ↑ Bogart 1990 , p. 17
  19. ^ Герштейн 1987 , стр. 217
  20. ^ a b Aigner, Мартин (2007). Курс перечисления . Спрингер GTM 238. стр.  24 -25. ISBN 978-3-540-39035-0.
  21. ^ Холл 1959 , стр. 54
  22. ^ Ротман 2002 , стр. 41 год
  23. Перейти ↑ Bogart 1990 , p. 487
  24. ^ Bona 2012 , стр.87 [Обратите внимание, что в книге есть опечатка / ошибка, так как она дает (45) вместо (54).]
  25. ^ a b Стэнли, Ричард П. (2012). Перечислительная комбинаторика: Том I, второе издание . Издательство Кембриджского университета. п. 23. ISBN 978-1-107-01542-5.
  26. Китаев, Сергей (2011). Паттерны в перестановках и словах . Springer Science & Business Media. п. 119. ISBN 978-3-642-17333-2.
  27. ^ Биггс, Норман L .; Уайт, А. Т. (1979). Группы перестановок и комбинаторные структуры . Издательство Кембриджского университета. ISBN 978-0-521-22287-7.
  28. ^ Диксон, Джон Д .; Мортимер, Брайан (1996). Группы перестановок . Springer. ISBN 978-0-387-94599-6.
  29. ^ Кэмерон, Питер Дж. (1999). Группы перестановок . Издательство Кембриджского университета. ISBN 978-0-521-65302-2.
  30. ^ Jerrum, М. (1986). «Компактное представление групп подстановок». J. Алгоритмы . 7 (1): 60–78. DOI : 10.1016 / 0196-6774 (86) 90038-6 . S2CID 18896625 . 
  31. Перейти ↑ Charalambides, Ch A. (2002). Перечислительная комбинаторика . CRC Press. п. 42. ISBN 978-1-58488-290-9.
  32. ^ Бруальди 2010 , стр. 46, теорема 2.4.2
  33. ^ Бруальди 2010 , стр. 47
  34. ^ Бруальди 2010 , стр. 39
  35. Перейти ↑ Bona 2012 , pp. 97–103.
  36. Перейти ↑ Sagan, Bruce (2001), The Symmetric Group (2 ed.), Springer, p. 3
  37. Перейти ↑ Humphreys 1996 , p. 84.
  38. ^ Холл 1959 , стр. 60
  39. ^ a b c Bona 2012 , стр. 109–110.
  40. ^ Bona 2004 , стр. 4f.
  41. Перейти ↑ Bona 2012 , pp. 4–5.
  42. Перейти ↑ Bona 2012 , p. 25.
  43. ^ Слокум, Джерри; Вайсштейн, Эрик В. (1999). «15 - пазл» . MathWorld . Wolfram Research, Inc . Проверено 4 октября 2014 года .
  44. ^ Bona 2004 , стр. 43.
  45. ^ Bona 2004 , стр. 43ff.
  46. ^ Кнут 1973 , стр. 12.
  47. ^ HA Rothe , Sammlung combinatorisch-analytischer Abhandlungen 2 (Лейпциг, 1800), 263–305. Цитируется по Knuth 1973 , p. 14
  48. ^ Фишер, РА; Йетс, Ф. (1948) [1938]. Статистические таблицы для биологических, сельскохозяйственных и медицинских исследований (3-е изд.). Лондон: Оливер и Бойд. С. 26–27. OCLC 14222135 . 
  49. ^ Bacher, A .; Bodini, O .; Hwang, HK; Цай, TH (2017). «Генерация случайных перестановок путем подбрасывания монет: классические алгоритмы, новый анализ и современная реализация» (ACM Trans. Algorithms 13 (2): 24: 1–24: 43 изд.). С. 24–43.
  50. ^ а б Седжвик, Р. (1977). «Методы генерации перестановок» (PDF) . Вычислительные обзоры . 9 (2): 137–164. DOI : 10.1145 / 356689.356692 . S2CID 12139332 .  
  51. ^ a b c Knuth 2005 , стр. 1–26.
  52. ^ "std :: next_permutation" . cppreference.com . 4 декабря 2017 . Проверено 31 марта 2018 года .
  53. ^ Куча, BR (1963). «Перестановки развязками» (PDF) . Компьютерный журнал . 6 (3): 293–298. DOI : 10.1093 / comjnl / 6.3.293 .
  54. ^ Мютце, Торстен; Савада, Джо; Уильямс, Аарон. «Генерация перестановок» . Комбинаторный объектный сервер . Проверено 29 мая 2019 года .
  55. Zaks, S. (1984). «Новый алгоритм генерации перестановок». BIT Численная математика . 24 (2): 196–204. DOI : 10.1007 / BF01937486 . S2CID 30234652 . 
  56. ^ Савада, Джо; Уильямс, Аарон (2018). «Путь Гамильтона для проблемы сигма-тау». Материалы 29-го ежегодного симпозиума ACM-SIAM по дискретным алгоритмам, SODA 2018 . Новый Орлеан, Луизиана: Общество промышленной и прикладной математики (SIAM). С. 568–575. DOI : 10.1137 / 1.9781611975031.37 .
  57. Перейти ↑ Corbett, PF (1992). «Графики ротатора: эффективная топология для многопроцессорных сетей точка-точка». Транзакции IEEE в параллельных и распределенных системах . 3 (5): 622–626. DOI : 10.1109 / 71.159045 .
  58. ^ а б Арндт, Йорг (2011). Вопросы вычислительные. Идеи, алгоритмы, исходный код . Springer . DOI : 10.1007 / 978-3-642-14764-7 . ISBN 978-3-642-14763-0.
  59. ^ Alexiou, A .; Психа, М .; Вламос, П. (2011). «Комбинаторный алгоритм на основе перестановок для представления вторичных структур закрытой РНК» . Биоинформация . 7 (2): 91–95. DOI : 10.6026 / 97320630007091 . PMC 3174042 . PMID 21938211 .  
  60. ^ 3GPP TS 36.212
  61. ^ Долев, Шломи; Лахиани, Лимор; Хавив, Йиннон (2013). «Уникальное хеширование перестановок» . Теоретическая информатика . 475 : 59–65. DOI : 10.1016 / j.tcs.2012.12.047 .

Библиография [ править ]

  • Богарт, Кеннет П. (1990), вводная комбинаторика (2-е изд.), Харкорт Брейс Йованович, ISBN 978-0-15-541576-8
  • Бона, Миклош (2004), Комбинаторика перестановок , Chapman Hall-CRC, ISBN 978-1-58488-434-7
  • Бона, Миклош (2012), Комбинаторика перестановок (2-е изд.), CRC Press, ISBN 978-1-4398-5051-0
  • Бруальди, Ричард А. (2010), Вводная комбинаторика (5-е изд.), Прентис-Холл, ISBN 978-0-13-602040-0
  • Кэмерон, Питер Дж. (1994), Комбинаторика: темы, методы, алгоритмы , Cambridge University Press, ISBN 978-0-521-45761-3
  • Кармайкл, Роберт Д. (1956) [1937], Введение в теорию групп конечного порядка , Dover, ISBN 978-0-486-60300-1
  • Фрали, Джон Б. (1976), Первый курс абстрактной алгебры (2-е изд.), Чтение: Аддисон-Уэсли , ISBN 0-201-01984-1
  • Герштейн, Ларри Дж. (1987), Дискретная математика и алгебраические структуры , WH Freeman and Co., ISBN 978-0-7167-1804-8
  • Холл, Маршалл младший (1959), Теория групп , Макмиллан
  • Хамфрис, JF (1996), курс теории групп , Oxford University Press, ISBN 978-0-19-853459-4
  • Кнут, Дональд (1973), Сортировка и поиск , Искусство компьютерного программирования, 3 В этой книге код Лемера (без использования этого имени) упоминается как вариант C 1 , ..., C n таблиц инверсии в упражнении 5.1.1–7 (стр. 19) вместе с двумя другими вариантами.
  • Кнут, Дональд (2005), Создание всех кортежей и перестановок , Искусство компьютерного программирования , 4 , Аддисон – Уэсли, ISBN 978-0-201-85393-3 Буклет 2, первая печать.
  • Маккой, Нил Х. (1968), Введение в современную алгебру, переработанное издание , Бостон: Аллин и Бэкон , LCCN  68015225
  • Неринг, Эвар Д. (1970), Линейная алгебра и теория матриц (2-е изд.), Нью-Йорк: Wiley , LCCN  76091646
  • Ротман, Джозеф Дж. (2002), Advanced Modern Algebra , Prentice-Hall, ISBN 978-0-13-087868-7
  • Стедман, Фабиан (1677), Campanalogia , Лондон Издатель указан как «WS», который, возможно, был Уильямом Смитом, возможно, действующим как агент Общества молодежи колледжей , которому адресовано «Посвящение». В цитатах первоначальная длинная буква «S» была заменена современной короткой «s».
  • Седьмой новый университетский словарь Вебстера , Springfield: G. & C. Merriam Company , 1969

Дальнейшее чтение [ править ]

  • Биггс, Норман Л. (2002), Дискретная математика (2-е изд.), Oxford University Press, ISBN 978-0-19-850717-8
  • Фоата, Доминик; Schutzenberger, Marcel-Paul (1970), Théorie Géométrique des Polynômes Eulériens , Lecture Notes in Mathematics, 138 , Berlin, Heidelberg: Springer-Verlag, ISBN 978-3-540-04927-2. Ссылка ведет на свободно доступную перепечатанную (LaTeX'ed) и исправленную версию текста, первоначально опубликованную Springer-Verlag.
  • Кнут, Дональд (1998), Сортировка и поиск , Искусство компьютерного программирования, 3 (второе издание), Аддисон-Уэсли, ISBN 978-0-201-89685-5. Раздел 5.1: Комбинаторные свойства перестановок, стр. 11–72.
  • Седжвик, Роберт (1977). «Методы генерации перестановок». ACM Computing Surveys . 9 (2): 137–164. DOI : 10.1145 / 356689.356692 . S2CID  12139332 .

Внешние ссылки [ править ]

  • «Перестановка» , Энциклопедия математики , EMS Press , 2001 [1994]