HOME

TheInfoList



OR:

In
mathematics Mathematics is a field of study that discovers and organizes methods, Mathematical theory, theories and theorems that are developed and Mathematical proof, proved for the needs of empirical sciences and mathematics itself. There are many ar ...
, a permutation of a
set Set, The Set, SET or SETS may refer to: Science, technology, and mathematics Mathematics *Set (mathematics), a collection of elements *Category of sets, the category whose objects and morphisms are sets and total functions, respectively Electro ...
can mean one of two different things: * an arrangement of its members in a
sequence In mathematics, a sequence is an enumerated collection of objects in which repetitions are allowed and order matters. Like a set, it contains members (also called ''elements'', or ''terms''). The number of elements (possibly infinite) is cal ...
or
linear order In mathematics, a total order or linear order is a partial order in which any two elements are comparable. That is, a total order is a binary relation \leq on some set X, which satisfies the following for all a, b and c in X: # a \leq a ( ref ...
, or * the act or process of changing the linear order of an ordered set. An example of the first meaning is the six permutations (orderings) of the set : written as
tuple In mathematics, a tuple is a finite sequence or ''ordered list'' of numbers or, more generally, mathematical objects, which are called the ''elements'' of the tuple. An -tuple is a tuple of elements, where is a non-negative integer. There is o ...
s, they are (1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), and (3, 2, 1).
Anagram An anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once. For example, the word ''anagram'' itself can be rearranged into the phrase "nag a ram"; which ...
s of a word whose letters are all different are also permutations: the letters are already ordered in the original word, and the anagram reorders them. The study of permutations of
finite set In mathematics, particularly set theory, a finite set is a set that has a finite number of elements. Informally, a finite set is a set which one could in principle count and finish counting. For example, is a finite set with five elements. Th ...
s is an important topic in
combinatorics Combinatorics is an area of mathematics primarily concerned with counting, both as a means and as an end to obtaining results, and certain properties of finite structures. It is closely related to many other areas of mathematics and has many ...
and
group theory In abstract algebra, group theory studies the algebraic structures known as group (mathematics), groups. The concept of a group is central to abstract algebra: other well-known algebraic structures, such as ring (mathematics), rings, field ( ...
. Permutations are used in almost every branch of mathematics and in many other fields of science. In
computer science Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied science, ...
, they are used for analyzing
sorting algorithm In computer science, a sorting algorithm is an algorithm that puts elements of a List (computing), list into an Total order, order. The most frequently used orders are numerical order and lexicographical order, and either ascending or descending ...
s; in
quantum physics Quantum mechanics is the fundamental physical Scientific theory, theory that describes the behavior of matter and of light; its unusual characteristics typically occur at and below the scale of atoms. Reprinted, Addison-Wesley, 1989, It is ...
, for describing states of particles; and in
biology Biology is the scientific study of life and living organisms. It is a broad natural science that encompasses a wide range of fields and unifying principles that explain the structure, function, growth, History of life, origin, evolution, and ...
, for describing
RNA Ribonucleic acid (RNA) is a polymeric molecule that is essential for most biological functions, either by performing the function itself (non-coding RNA) or by forming a template for the production of proteins (messenger RNA). RNA and deoxyrib ...
sequences. The number of permutations of distinct objects is  
factorial In mathematics, the factorial of a non-negative denoted is the Product (mathematics), product of all positive integers less than or equal The factorial also equals the product of n with the next smaller factorial: \begin n! &= n \times ...
, usually written as , which means the product of all positive integers less than or equal to . According to the second meaning, a permutation of a
set Set, The Set, SET or SETS may refer to: Science, technology, and mathematics Mathematics *Set (mathematics), a collection of elements *Category of sets, the category whose objects and morphisms are sets and total functions, respectively Electro ...
is defined as a
bijection In mathematics, a bijection, bijective function, or one-to-one correspondence is a function between two sets such that each element of the second set (the codomain) is the image of exactly one element of the first set (the domain). Equival ...
from to itself. That is, it is a function from to for which every element occurs exactly once as an
image An image or picture is a visual representation. An image can be Two-dimensional space, two-dimensional, such as a drawing, painting, or photograph, or Three-dimensional space, three-dimensional, such as a carving or sculpture. Images may be di ...
value. Such a function \sigma : S \to S is equivalent to the rearrangement of the elements of in which each element ''i'' is replaced by the corresponding \sigma(i). For example, the permutation (3, 1, 2) corresponds to the function \sigma defined as \sigma(1) = 3, \quad \sigma(2) = 1, \quad \sigma(3) = 2. The collection of all permutations of a set form a
group A group is a number of persons or things that are located, gathered, or classed together. Groups of people * Cultural group, a group whose members share the same cultural identity * Ethnic group, a group whose members share the same ethnic iden ...
called the
symmetric group In abstract algebra, the symmetric group defined over any set is the group whose elements are all the bijections from the set to itself, and whose group operation is the composition of functions. In particular, the finite symmetric grou ...
of the set. The
group operation In mathematics, a group is a set with an operation that combines any two elements of the set to produce a third element within the same set and the following conditions must hold: the operation is associative, it has an identity element, and ev ...
is the
composition of functions In mathematics, the composition operator \circ takes two functions, f and g, and returns a new function h(x) := (g \circ f) (x) = g(f(x)). Thus, the function is applied after applying to . (g \circ f) is pronounced "the composition of an ...
(performing one rearrangement after the other), which results in another function (rearrangement). The properties of permutations do not depend on the nature of the elements being permuted, only on their number, so one often considers the standard set S=\. In elementary combinatorics, the -permutations, or partial permutations, are the ordered arrangements of distinct elements selected from a set. When is equal to the size of the set, these are the permutations in the previous sense.


History

Permutation-like objects called
hexagrams , can be seen as a compound polygon, compound composed of an upwards (blue here) and downwards (pink) facing equilateral triangle, with their intersection as a regular hexagon (in green). A hexagram (Greek language, Greek) or sexagram (Latin l ...
were used in China in the
I Ching The ''I Ching'' or ''Yijing'' ( ), usually translated ''Book of Changes'' or ''Classic of Changes'', is an ancient Chinese divination text that is among the oldest of the Chinese classics. The ''I Ching'' was originally a divination manual in ...
(
Pinyin Hanyu Pinyin, or simply pinyin, officially the Chinese Phonetic Alphabet, is the most common romanization system for Standard Chinese. ''Hanyu'' () literally means 'Han Chinese, Han language'—that is, the Chinese language—while ''pinyin' ...
: Yi Jing) as early as 1000 BC. In Greece,
Plutarch Plutarch (; , ''Ploútarchos'', ; – 120s) was a Greek Middle Platonist philosopher, historian, biographer, essayist, and priest at the Temple of Apollo (Delphi), Temple of Apollo in Delphi. He is known primarily for his ''Parallel Lives'', ...
wrote that
Xenocrates Xenocrates (; ; c. 396/5314/3 BC) of Chalcedon was a Greek philosopher, mathematician, and leader ( scholarch) of the Platonic Academy from 339/8 to 314/3 BC. His teachings followed those of Plato, which he attempted to define more closely, of ...
of Chalcedon (396–314 BC) discovered the number of different syllables possible in the Greek language. This would have been the first attempt on record to solve a difficult problem in permutations and combinations.
Al-Khalil Hebron (; , or ; , ) is a Palestinian city in the southern West Bank, south of Jerusalem. Hebron is capital of the Hebron Governorate, the largest Governorates of Palestine, governorate in the West Bank. With a population of 201,063 in ...
(717–786), an Arab mathematician and
cryptographer Cryptography, or cryptology (from "hidden, secret"; and ''graphein'', "to write", or '' -logia'', "study", respectively), is the practice and study of techniques for secure communication in the presence of adversarial behavior. More gen ...
, wrote the ''Book of Cryptographic Messages''. It contains the first use of permutations and combinations, to list all possible
Arabic Arabic (, , or , ) is a Central Semitic languages, Central Semitic language of the Afroasiatic languages, Afroasiatic language family spoken primarily in the Arab world. The International Organization for Standardization (ISO) assigns lang ...
words with and without vowels. The rule to determine the number of permutations of ''n'' objects was known in Indian culture around 1150 AD. The '' Lilavati'' by the Indian mathematician
Bhāskara II Bhāskara II ('; 1114–1185), also known as Bhāskarāchārya (), was an Indian people, Indian polymath, Indian mathematicians, mathematician, astronomer and engineer. From verses in his main work, Siddhānta Śiromaṇi, it can be inferre ...
contains a passage that translates as follows:
The product of multiplication of the arithmetical series beginning and increasing by unity and continued to the number of places, will be the variations of number with specific figures.
In 1677, Fabian Stedman described factorials when explaining the number of permutations of bells in
change ringing Change ringing is the art of ringing a set of tuning (music), tuned bell (instrument), bells in a tightly controlled manner to produce precise variations in their successive striking sequences, known as "changes". This can be by method ringing in ...
. Starting from two bells: "first, ''two'' must be admitted to be varied in two ways", which he illustrates by showing 1 2 and 2 1. He then explains that with three bells there are "three times two figures to be produced out of three" which again is illustrated. His explanation involves "cast away 3, and 1.2 will remain; cast away 2, and 1.3 will remain; cast away 1, and 2.3 will remain". He then moves on to four bells and repeats the casting away argument showing that there will be four different sets of three. Effectively, this is a recursive process. He continues with five bells using the "casting away" method and tabulates the resulting 120 combinations. At this point he gives up and remarks:
Now the nature of these methods is such, that the changes on one number comprehends the changes on all lesser numbers, ... insomuch that a compleat Peal of changes on one number seemeth to be formed by uniting of the compleat Peals on all lesser numbers into one entire body;
Stedman widens the consideration of permutations; he goes on to consider the number of permutations of the letters of the alphabet and of horses from a stable of 20. A first case in which seemingly unrelated mathematical questions were studied with the help of permutations occurred around 1770, when
Joseph Louis Lagrange Joseph-Louis Lagrange (born Giuseppe Luigi Lagrangiaroots A root is the part of a plant, generally underground, that anchors the plant body, and absorbs and stores water and nutrients. Root or roots may also refer to: Art, entertainment, and media * ''The Root'' (magazine), an online magazine focusin ...
of an equation are related to the possibilities to solve it. This line of work ultimately resulted, through the work of
Évariste Galois Évariste Galois (; ; 25 October 1811 – 31 May 1832) was a French mathematician and political activist. While still in his teens, he was able to determine a necessary and sufficient condition for a polynomial to be solvable by Nth root, ...
, in
Galois theory In mathematics, Galois theory, originally introduced by Évariste Galois, provides a connection between field (mathematics), field theory and group theory. This connection, the fundamental theorem of Galois theory, allows reducing certain problems ...
, which gives a complete description of what is possible and impossible with respect to solving polynomial equations (in one unknown) by radicals. In modern mathematics, there are many similar situations in which understanding a problem requires studying certain permutations related to it. The study of permutations as substitutions on n elements led to the notion of group as algebraic structure, through the works of
Cauchy Baron Augustin-Louis Cauchy ( , , ; ; 21 August 1789 – 23 May 1857) was a French mathematician, engineer, and physicist. He was one of the first to rigorously state and prove the key theorems of calculus (thereby creating real a ...
(1815 memoir). Permutations played an important role in the cryptanalysis of the Enigma machine, a cipher device used by
Nazi Germany Nazi Germany, officially known as the German Reich and later the Greater German Reich, was the German Reich, German state between 1933 and 1945, when Adolf Hitler and the Nazi Party controlled the country, transforming it into a Totalit ...
during
World War II World War II or the Second World War (1 September 1939 – 2 September 1945) was a World war, global conflict between two coalitions: the Allies of World War II, Allies and the Axis powers. World War II by country, Nearly all of the wo ...
. In particular, one important property of permutations, namely, that two permutations are conjugate exactly when they have the same cycle type, was used by cryptologist
Marian Rejewski Marian Adam Rejewski (; 16 August 1905 – 13 February 1980) was a Polish people, Polish mathematician and Cryptography, cryptologist who in late 1932 reconstructed the sight-unseen German military Enigma machine, Enigma cipher machine, aided ...
to break the German Enigma cipher in turn of years 1932-1933.


Definition

In mathematics texts it is customary to denote permutations using lowercase Greek letters. Commonly, either \alpha,\beta,\gamma or \sigma, \tau,\rho,\pi are used. A permutation can be defined as a
bijection In mathematics, a bijection, bijective function, or one-to-one correspondence is a function between two sets such that each element of the second set (the codomain) is the image of exactly one element of the first set (the domain). Equival ...
(an invertible mapping, a one-to-one and onto function) from a set to itself:
\sigma : S\ \stackrel\ S.
The identity permutation is defined by \sigma(x) = x for all elements x\in S , and can be denoted by the number 1, by \text= \text_S , or by a single 1-cycle (x). The set of all permutations of a set with ''n'' elements forms the
symmetric group In abstract algebra, the symmetric group defined over any set is the group whose elements are all the bijections from the set to itself, and whose group operation is the composition of functions. In particular, the finite symmetric grou ...
S_n, where the
group operation In mathematics, a group is a set with an operation that combines any two elements of the set to produce a third element within the same set and the following conditions must hold: the operation is associative, it has an identity element, and ev ...
is
composition of functions In mathematics, the composition operator \circ takes two functions, f and g, and returns a new function h(x) := (g \circ f) (x) = g(f(x)). Thus, the function is applied after applying to . (g \circ f) is pronounced "the composition of an ...
. Thus for two permutations \sigma and \tau in the group S_n, their product \pi = \sigma\tau is defined by:
\pi(i)=\sigma(\tau(i)).
Composition is usually written without a dot or other sign. In general, composition of two permutations is not
commutative In mathematics, a binary operation is commutative if changing the order of the operands does not change the result. It is a fundamental property of many binary operations, and many mathematical proofs depend on it. Perhaps most familiar as a pr ...
: \tau\sigma \neq \sigma\tau. As a bijection from a set to itself, a permutation is a function that ''performs'' a rearrangement of a set, termed an ''active permutation'' or ''substitution''. An older viewpoint sees a permutation as an ordered arrangement or list of all the elements of ''S'', called a ''passive permutation''. According to this definition, all permutations in are passive. This meaning is subtly distinct from how passive (i.e. ''alias'') is used in Active and passive transformation and elsewhere, which would consider all permutations open to passive interpretation (regardless of whether they are in one-line notation, two-line notation, etc.). A permutation \sigma can be decomposed into one or more disjoint ''cycles'' which are the
orbits In celestial mechanics, an orbit (also known as orbital revolution) is the curved trajectory of an physical body, object such as the trajectory of a planet around a star, or of a natural satellite around a planet, or of an satellite, artificia ...
of the cyclic group \langle\sigma\rangle = \
acting Acting is an activity in which a story is told by means of its enactment by an actor who adopts a character—in theatre, television, film, radio, or any other medium that makes use of the mimetic mode. Acting involves a broad range of sk ...
on the set ''S''. A cycle is found by repeatedly applying the permutation to an element: x, \sigma(x),\sigma(\sigma(x)),\ldots, \sigma^(x), where we assume \sigma^k(x)=x . A cycle consisting of ''k'' elements is called a ''k''-cycle. (See below.) A fixed point of a permutation \sigma is an element ''x'' which is taken to itself, that is \sigma(x)=x , forming a 1-cycle (\,x\,). A permutation with no fixed points is called a derangement. A permutation exchanging two elements (a single 2-cycle) and leaving the others fixed is called a transposition.


Notations

Several notations are widely used to represent permutations conveniently. ''Cycle notation'' is a popular choice, as it is compact and shows the permutation's structure clearly. This article will use cycle notation unless otherwise specified.


Two-line notation

Cauchy Baron Augustin-Louis Cauchy ( , , ; ; 21 August 1789 – 23 May 1857) was a French mathematician, engineer, and physicist. He was one of the first to rigorously state and prove the key theorems of calculus (thereby creating real a ...
's ''two-line notation'' lists the elements of ''S'' in the first row, and the image of each element below it in the second row. For example, the permutation of ''S'' = given by the function
\sigma(1) = 2, \ \ \sigma(2) = 6, \ \ \sigma(3) = 5, \ \ \sigma(4) = 4, \ \ \sigma(5) = 3, \ \ \sigma(6) = 1
can be written as : \sigma = \begin 1 & 2 & 3 & 4 & 5 & 6 \\ 2 & 6 & 5 & 4 & 3 & 1 \end. The elements of ''S'' may appear in any order in the first row, so this permutation could also be written: : \sigma = \begin 2 & 3 & 4 & 5 & 6 & 1 \\ 6 & 5 & 4 & 3 & 1 & 2 \end = \begin 6 & 5 & 4 & 3 & 2 & 1 \\ 1 & 3 & 4 & 5 & 6 & 2 \end.


One-line notation

If there is a "natural" order for the elements of ''S'', say x_1, x_2, \ldots, x_n, then one uses this for the first row of the two-line notation: : \sigma = \begin x_1 & x_2 & x_3 & \cdots & x_n \\ \sigma(x_1) & \sigma(x_2) & \sigma(x_3) & \cdots & \sigma(x_n) \end. Under this assumption, one may omit the first row and write the permutation in ''one-line notation'' as : \sigma = \sigma(x_1) \; \sigma(x_2) \; \sigma(x_3) \; \cdots \; \sigma(x_n) , that is, as an ordered arrangement of the elements of ''S''. Care must be taken to distinguish one-line notation from the cycle notation described below: a common usage is to omit parentheses or other enclosing marks for one-line notation, while using parentheses for cycle notation. The one-line notation is also called the ''
word A word is a basic element of language that carries semantics, meaning, can be used on its own, and is uninterruptible. Despite the fact that language speakers often have an intuitive grasp of what a word is, there is no consensus among linguist ...
representation''. The example above would then be:
\sigma = \begin 1 & 2 & 3 & 4 & 5 & 6 \\ 2 & 6 & 5 & 4 & 3 & 1 \end = 2 6 5 4 3 1.
(It is typical to use commas to separate these entries only if some have two or more digits.) This compact form is common in elementary
combinatorics Combinatorics is an area of mathematics primarily concerned with counting, both as a means and as an end to obtaining results, and certain properties of finite structures. It is closely related to many other areas of mathematics and has many ...
and
computer science Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied science, ...
. It is especially useful in applications where the permutations are to be compared as larger or smaller using
lexicographic order In mathematics, the lexicographic or lexicographical order (also known as lexical order, or dictionary order) is a generalization of the alphabetical order of the dictionaries to sequences of ordered symbols or, more generally, of elements of a ...
.


Cycle notation

Cycle notation describes the effect of repeatedly applying the permutation on the elements of the set ''S'', with an orbit being called a ''cycle''. The permutation is written as a list of cycles; since distinct cycles involve disjoint sets of elements, this is referred to as "decomposition into disjoint cycles". To write down the permutation \sigma in cycle notation, one proceeds as follows: # Write an opening bracket followed by an arbitrary element ''x'' of S: (\,x # Trace the orbit of ''x'', writing down the values under successive applications of \sigma: (\,x,\sigma(x),\sigma(\sigma(x)),\ldots # Repeat until the value returns to ''x,'' and close the parenthesis without repeating ''x'': (\,x\,\sigma(x)\,\sigma(\sigma(x))\,\ldots\,) # Continue with an element ''y'' of ''S'' which was not yet written, and repeat the above process: (\,x\,\sigma(x)\,\sigma(\sigma(x))\,\ldots\,)(\,y\,\ldots\,) # Repeat until all elements of ''S'' are written in cycles. Also, it is common to omit 1-cycles, since these can be inferred: for any element ''x'' in ''S'' not appearing in any cycle, one implicitly assumes \sigma(x) = x. Following the convention of omitting 1-cycles, one may interpret an individual cycle as a permutation which fixes all the elements not in the cycle (a
cyclic permutation In mathematics, and in particular in group theory, a cyclic permutation is a permutation consisting of a single cycle. In some cases, cyclic permutations are referred to as cycles; if a cyclic permutation has ''k'' elements, it may be called a ''k ...
having only one cycle of length greater than 1). Then the list of disjoint cycles can be seen as the composition of these cyclic permutations. For example, the one-line permutation \sigma = 2 6 5 4 3 1 can be written in cycle notation as:
\sigma = (126)(35)(4) = (126)(35).
This may be seen as the composition \sigma = \kappa_1 \kappa_2 of cyclic permutations:
\kappa_1 = (126) = (126)(3)(4)(5),\quad \kappa_2 = (35)= (35)(1)(2)(6).
While permutations in general do not commute, disjoint cycles do; for example:
\sigma = (126)(35) = (35)(126).
Also, each cycle can be rewritten from a different starting point; for example,
\sigma = (126)(35) = (261)(53).
Thus one may write the disjoint cycles of a given permutation in many different ways. A convenient feature of cycle notation is that inverting the permutation is given by reversing the order of the elements in each cycle. For example,
\sigma^ = \left(\vphantom(126)(35)\right)^ = (621)(53).


Canonical cycle notation

In some combinatorial contexts it is useful to fix a certain order for the elements in the cycles and of the (disjoint) cycles themselves. Miklós Bóna calls the following ordering choices the ''canonical cycle notation:'' * in each cycle the ''largest'' element is listed first * the cycles are sorted in ''increasing'' order of their first element, not omitting 1-cycles For example, (513)(6)(827)(94) is a permutation of S = \ in canonical cycle notation. Richard Stanley calls this the "standard representation" of a permutation, and Martin Aigner uses "standard form". Sergey Kitaev also uses the "standard form" terminology, but reverses both choices; that is, each cycle lists its minimal element first, and the cycles are sorted in decreasing order of their minimal elements.


Composition of permutations

There are two ways to denote the composition of two permutations. In the most common notation, \sigma\cdot \tau is the function that maps any element ''x'' to \sigma(\tau(x)). The rightmost permutation is applied to the argument first, because the argument is written to the right of the function. A ''different'' rule for multiplying permutations comes from writing the argument to the left of the function, so that the leftmost permutation acts first. In this notation, the permutation is often written as an exponent, so ''σ'' acting on ''x'' is written ''x''''σ''; then the product is defined by x^ = (x^\sigma)^\tau. This article uses the first definition, where the rightmost permutation is applied first. The
function composition In mathematics, the composition operator \circ takes two function (mathematics), functions, f and g, and returns a new function h(x) := (g \circ f) (x) = g(f(x)). Thus, the function is function application, applied after applying to . (g \c ...
operation satisfies the axioms of a
group A group is a number of persons or things that are located, gathered, or classed together. Groups of people * Cultural group, a group whose members share the same cultural identity * Ethnic group, a group whose members share the same ethnic iden ...
. It is
associative In mathematics, the associative property is a property of some binary operations that rearranging the parentheses in an expression will not change the result. In propositional logic, associativity is a valid rule of replacement for express ...
, meaning (\rho\sigma)\tau = \rho(\sigma\tau), and products of more than two permutations are usually written without parentheses. The composition operation also has an
identity element In mathematics, an identity element or neutral element of a binary operation is an element that leaves unchanged every element when the operation is applied. For example, 0 is an identity element of the addition of real numbers. This concept is use ...
(the identity permutation \text), and each permutation \sigma has an inverse \sigma^ (its
inverse function In mathematics, the inverse function of a function (also called the inverse of ) is a function that undoes the operation of . The inverse of exists if and only if is bijective, and if it exists, is denoted by f^ . For a function f\colon ...
) with \sigma^\sigma = \sigma\sigma^=\text.


Other uses of the term ''permutation''

The concept of a permutation as an ordered arrangement admits several generalizations that have been called ''permutations'', especially in older literature.


''k''-permutations of ''n''

In older literature and elementary textbooks, a ''k''-permutation of ''n'' (sometimes called a partial permutation, sequence without repetition, variation, or arrangement) means an ordered arrangement (list) of a ''k''-element subset of an ''n''-set. The number of such ''k''-permutations (''k''-arrangements) of n is denoted variously by such symbols as P^n_k, _nP_k, ^n\!P_k, P_, P(n,k), or A^k_n, computed by the formula: : P(n,k) = \underbrace_, which is 0 when , and otherwise is equal to : \frac. The product is well defined without the assumption that n is a non-negative integer, and is of importance outside combinatorics as well; it is known as the
Pochhammer symbol In mathematics, the falling factorial (sometimes called the descending factorial, falling sequential product, or lower factorial) is defined as the polynomial \begin (x)_n = x^\underline &= \overbrace^ \\ &= \prod_^n(x-k+1) = \prod_^(x-k) . \end ...
(n)_k or as the k-th falling factorial power n^:
P(n,k)= P_k =(n)_k = n^ .
This usage of the term ''permutation'' is closely associated with the term ''
combination In mathematics, a combination is a selection of items from a set that has distinct members, such that the order of selection does not matter (unlike permutations). For example, given three fruits, say an apple, an orange and a pear, there are ...
'' to mean a subset. A ''k-combination'' of a set ''S'' is a ''k-''element subset of ''S'': the elements of a combination are not ordered. Ordering the ''k''-combinations of ''S'' in all possible ways produces the ''k''-permutations of ''S''. The number of ''k''-combinations of an ''n''-set, ''C''(''n'',''k''), is therefore related to the number of ''k''-permutations of ''n'' by: : C(n,k) = \frac= \frac = \frac. These numbers are also known as
binomial coefficient In mathematics, the binomial coefficients are the positive integers that occur as coefficients in the binomial theorem. Commonly, a binomial coefficient is indexed by a pair of integers and is written \tbinom. It is the coefficient of the t ...
s, usually denoted \tbinom:
C(n,k)= C_k =\binom .


Permutations with repetition

Ordered arrangements of ''k'' elements of a set ''S'', where repetition is allowed, are called ''k''-tuples. They have sometimes been referred to as permutations with repetition, although they are not permutations in the usual sense. They are also called
words A word is a basic element of language that carries meaning, can be used on its own, and is uninterruptible. Despite the fact that language speakers often have an intuitive grasp of what a word is, there is no consensus among linguists on its ...
or strings over the alphabet ''S''. If the set ''S'' has ''n'' elements, the number of ''k''-tuples over ''S'' is n^k.


Permutations of multisets

If ''M'' is a finite
multiset In mathematics, a multiset (or bag, or mset) is a modification of the concept of a set that, unlike a set, allows for multiple instances for each of its elements. The number of instances given for each element is called the ''multiplicity'' of ...
, then a multiset permutation is an ordered arrangement of elements of ''M'' in which each element appears a number of times equal exactly to its multiplicity in ''M''. An
anagram An anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once. For example, the word ''anagram'' itself can be rearranged into the phrase "nag a ram"; which ...
of a word having some repeated letters is an example of a multiset permutation. If the multiplicities of the elements of ''M'' (taken in some order) are m_1, m_2, ..., m_l and their sum (that is, the size of ''M'') is ''n'', then the number of multiset permutations of ''M'' is given by the
multinomial coefficient In mathematics, the multinomial theorem describes how to expand a power of a sum in terms of powers of the terms in that sum. It is the generalization of the binomial theorem from binomials to multinomials. Theorem For any positive integer ...
, : = \frac = \frac. For example, the number of distinct anagrams of the word MISSISSIPPI is: :\frac = 34650. A ''k''-permutation of a multiset ''M'' is a sequence of ''k'' elements of ''M'' in which each element appears ''a number of times less than or equal to'' its multiplicity in ''M'' (an element's ''repetition number'').


Circular permutations

Permutations, when considered as arrangements, are sometimes referred to as ''linearly ordered'' arrangements. If, however, the objects are arranged in a circular manner this distinguished ordering is weakened: there is no "first element" in the arrangement, as any element can be considered as the start. An arrangement of distinct objects in a circular manner is called a circular permutation. These can be formally defined as
equivalence classes In mathematics, when the elements of some set S have a notion of equivalence (formalized as an equivalence relation), then one may naturally split the set S into equivalence classes. These equivalence classes are constructed so that elements a ...
of ordinary permutations of these objects, for the
equivalence relation In mathematics, an equivalence relation is a binary relation that is reflexive, symmetric, and transitive. The equipollence relation between line segments in geometry is a common example of an equivalence relation. A simpler example is equ ...
generated by moving the final element of the linear arrangement to its front. Two circular permutations are equivalent if one can be rotated into the other. The following four circular permutations on four letters are considered to be the same.
     1           4           2           3
   4   3       2   1       3   4       1   2
     2           3           1           4
The circular arrangements are to be read counter-clockwise, so the following two are not equivalent since no rotation can bring one to the other.
     1          1
   4   3      3   4
     2          2
There are (''n'' – 1)! circular permutations of a set with ''n'' elements.


Properties

The number of permutations of distinct objects is !. The number of -permutations with disjoint cycles is the signless Stirling number of the first kind, denoted c(n,k) or beginn \\ k\end/math>.


Cycle type

The cycles (including the fixed points) of a permutation \sigma of a set with elements partition that set; so the lengths of these cycles form an
integer partition In number theory and combinatorics, a partition of a non-negative integer , also called an integer partition, is a way of writing as a summation, sum of positive integers. Two sums that differ only in the order of their summands are considered ...
of , which is called the cycle type (or sometimes cycle structure or cycle shape) of \sigma. There is a "1" in the cycle type for every fixed point of \sigma, a "2" for every transposition, and so on. The cycle type of \beta = (1\,2\,5\,)(\,3\,4\,)(6\,8\,)(\,7\,) is (3, 2, 2, 1). This may also be written in a more compact form as . More precisely, the general form is ^2^\dotsm n^/math>, where \alpha_1,\ldots,\alpha_n are the numbers of cycles of respective length. The number of permutations of a given cycle type is : \frac. The number of cycle types of a set with elements equals the value of the partition function p(n).
Polya Polyadenylation is the addition of a poly(A) tail to an RNA transcript, typically a messenger RNA (mRNA). The poly(A) tail consists of multiple adenosine monophosphates; in other words, it is a stretch of RNA that has only adenine bases. In euka ...
's
cycle index In combinatorial mathematics a cycle index is a polynomial in several variables which is structured in such a way that information about how a group of permutations acts on a set can be simply read off from the coefficients and exponents. This com ...
polynomial is a
generating function In mathematics, a generating function is a representation of an infinite sequence of numbers as the coefficients of a formal power series. Generating functions are often expressed in closed form (rather than as a series), by some expression invo ...
which counts permutations by their cycle type.


Conjugating permutations

In general, composing permutations written in cycle notation follows no easily described pattern – the cycles of the composition can be different from those being composed. However the cycle type is preserved in the special case of conjugating a permutation \sigma by another permutation \pi, which means forming the product \pi\sigma\pi^. Here, \pi\sigma\pi^ is the ''conjugate'' of \sigma by \pi and its cycle notation can be obtained by taking the cycle notation for \sigma and applying \pi to all the entries in it. It follows that two permutations are conjugate exactly when they have the same cycle type.


Order of a permutation

The order of a permutation \sigma is the smallest positive integer ''m'' so that \sigma^m = \mathrm. It is the
least common multiple In arithmetic and number theory, the least common multiple (LCM), lowest common multiple, or smallest common multiple (SCM) of two integers ''a'' and ''b'', usually denoted by , is the smallest positive integer that is divisible by both ''a'' and ...
of the lengths of its cycles. For example, the order of \sigma=(152)(34) is \text(3,2) = 6.


Parity of a permutation

Every permutation of a finite set can be expressed as the product of transpositions. Although many such expressions for a given permutation may exist, either they all contain an even number of transpositions or they all contain an odd number of transpositions. Thus all permutations can be classified as even or odd depending on this number. This result can be extended so as to assign a ''sign'', written \operatorname\sigma, to each permutation. \operatorname\sigma = +1 if \sigma is even and \operatorname\sigma = -1 if \sigma is odd. Then for two permutations \sigma and \pi : \operatorname(\sigma\pi) = \operatorname\sigma\cdot\operatorname\pi. It follows that \operatorname\left(\sigma\sigma^\right) = +1. The sign of a permutation is equal to the determinant of its permutation matrix (below).


Matrix representation

A ''permutation matrix'' is an ''n'' × ''n'' matrix that has exactly one entry 1 in each column and in each row, and all other entries are 0. There are several ways to assign a permutation matrix to a permutation of . One natural approach is to define L_ to be the
linear transformation In mathematics, and more specifically in linear algebra, a linear map (also called a linear mapping, linear transformation, vector space homomorphism, or in some contexts linear function) is a mapping V \to W between two vector spaces that pr ...
of \mathbb^n which permutes the
standard basis In mathematics, the standard basis (also called natural basis or canonical basis) of a coordinate vector space (such as \mathbb^n or \mathbb^n) is the set of vectors, each of whose components are all zero, except one that equals 1. For exampl ...
\ by L_\sigma(\mathbf_j)=\mathbf_, and define M_ to be its matrix. That is, M_ has its ''j''th column equal to the n × 1 column vector \mathbf_: its (''i'', ''j'') entry is to 1 if ''i'' = ''σ''(''j''), and 0 otherwise. Since composition of linear mappings is described by matrix multiplication, it follows that this construction is compatible with composition of permutations:
M_\sigma M_\tau = M_.
For example, the one-line permutations \sigma=213,\ \tau=231 have product \sigma\tau = 132, and the corresponding matrices are: M_ M_ = \begin 0&1&0\\1&0&0\\0&0&1\end \begin 0&0&1\\1&0&0\\0&1&0\end = \begin 1&0&0\\0&0&1\\0&1&0\end = M_. It is also common in the literature to find the inverse convention, where a permutation ''σ'' is associated to the matrix P_ = (M_)^ = (M_)^ whose (''i'', ''j'') entry is 1 if ''j'' = ''σ''(''i'') and is 0 otherwise. In this convention, permutation matrices multiply in the opposite order from permutations, that is, P_\sigma P_ = P_. In this correspondence, permutation matrices act on the right side of the standard 1 \times n row vectors (_i)^T: (_i)^T P_ = (_)^T. The
Cayley table Named after the 19th-century United Kingdom, British mathematician Arthur Cayley, a Cayley table describes the structure of a finite group by arranging all the possible products of all the group's elements in a square table reminiscent of an additi ...
on the right shows these matrices for permutations of 3 elements.


Permutations of totally ordered sets

In some applications, the elements of the set being permuted will be compared with each other. This requires that the set ''S'' has a
total order In mathematics, a total order or linear order is a partial order in which any two elements are comparable. That is, a total order is a binary relation \leq on some set X, which satisfies the following for all a, b and c in X: # a \leq a ( re ...
so that any two elements can be compared. The set with the usual ≤ relation is the most frequently used set in these applications. A number of properties of a permutation are directly related to the total ordering of ''S,'' considering the permutation written in one-line notation as a sequence \sigma = \sigma(1)\sigma(2)\cdots\sigma(n).


Ascents, descents, runs, exceedances, records

An ''ascent'' of a permutation ''σ'' of ''n'' is any position ''i'' < ''n'' where the following value is bigger than the current one. That is, ''i'' is an ascent if \sigma(i)<\sigma(i1). For example, the permutation 3452167 has ascents (at positions) 1, 2, 5, and 6. Similarly, a ''descent'' is a position ''i'' < ''n'' with \sigma(i)>\sigma(i1), so every ''i'' with 1 \leq i is either an ascent or a descent. An ''ascending run'' of a permutation is a nonempty increasing contiguous subsequence that cannot be extended at either end; it corresponds to a maximal sequence of successive ascents (the latter may be empty: between two successive descents there is still an ascending run of length 1). By contrast an ''increasing subsequence'' of a permutation is not necessarily contiguous: it is an increasing sequence obtained by omitting some of the values of the one-line notation. For example, the permutation 2453167 has the ascending runs 245, 3, and 167, while it has an increasing subsequence 2367. If a permutation has ''k'' − 1 descents, then it must be the union of ''k'' ascending runs. The number of permutations of ''n'' with ''k'' ascents is (by definition) the Eulerian number \textstyle\left\langle\right\rangle; this is also the number of permutations of ''n'' with ''k'' descents. Some authors however define the Eulerian number \textstyle\left\langle\right\rangle as the number of permutations with ''k'' ascending runs, which corresponds to descents. An exceedance of a permutation ''σ''1''σ''2...''σ''''n'' is an index ''j'' such that . If the inequality is not strict (that is, ), then ''j'' is called a ''weak exceedance''. The number of ''n''-permutations with ''k'' exceedances coincides with the number of ''n''-permutations with ''k'' descents. A ''record'' or ''left-to-right maximum'' of a permutation ''σ'' is an element ''i'' such that ''σ''(''j'') < ''σ''(''i'') for all ''j < i''.


Foata's transition lemma

Foata's ''fundamental bijection'' transforms a permutation with a given canonical cycle form into the permutation f(\sigma) = \hat\sigma whose one-line notation has the same sequence of elements with parentheses removed. For example: \sigma = (513)(6)(827)(94) = \begin 1&2&3&4&5&6&7&8&9\\ 3&7&5&9&1&6&8&2&4 \end, \hat\sigma = 513682794 = \begin 1&2&3&4&5&6&7&8&9\\ 5&1&3&6&8&2&7&9&4 \end. Here the first element in each canonical cycle of becomes a record (left-to-right maximum) of \hat\sigma . Given \hat\sigma , one may find its records and insert parentheses to construct the inverse transformation \sigma=f^(\hat\sigma) . Underlining the records in the above example: \hat\sigma = \underline\, 1\, 3\, \underline\, \underline\,2\,7\,\underline\,4 , which allows the reconstruction of the cycles of . The following table shows \hat\sigma and for the six permutations of ''S'' = , with the bold text on each side showing the notation used in the bijection: one-line notation for \hat\sigma and canonical cycle notation for . \begin \hat\sigma = f(\sigma) & \sigma=f^(\hat\sigma) \\ \hline \mathbf=(\,1\,)(\,2\,)(\,3\,) & 123=\mathbf \\ \mathbf=(\,1\,)(\,3\,2\,) & 132=\mathbf \\ \mathbf=(\,2\,1\,)(\,3\,) & 213=\mathbf \\ \mathbf=(\,3\,1\,2\,) & 321=\mathbf \\ \mathbf=(\,3\,2\,1\,) & 231=\mathbf \\ \mathbf=(\,2\,)(\,3\,1\,) & 312=\mathbf \end As a first corollary, the number of ''n''-permutations with exactly ''k'' records is equal to the number of ''n''-permutations with exactly ''k'' cycles: this last number is the signless Stirling number of the first kind, c(n, k). Furthermore, Foata's mapping takes an ''n''-permutation with ''k'' weak exceedances to an ''n''-permutation with ascents. For example, (2)(31) = 321 has ''k ='' 2 weak exceedances (at index 1 and 2), whereas has ascent (at index 1; that is, from 2 to 3).


Inversions

An '' inversion'' of a permutation ''σ'' is a pair of positions where the entries of a permutation are in the opposite order: i < j and \sigma(i)> \sigma(j). Thus a descent is an inversion at two adjacent positions. For example, has (''i'', ''j'') = (1, 3), (2, 3), and (4, 5), where (''σ''(''i''), ''σ''(''j'')) = (2, 1), (3, 1), and (5, 4). Sometimes an inversion is defined as the pair of values (''σ''(''i''), ''σ''(''j'')); this makes no difference for the ''number'' of inversions, and the reverse pair (''σ''(''j''), ''σ''(''i'')) is an inversion in the above sense for the inverse permutation ''σ''−1. The number of inversions is an important measure for the degree to which the entries of a permutation are out of order; it is the same for ''σ'' and for ''σ''−1. To bring a permutation with ''k'' inversions into order (that is, transform it into the identity permutation), by successively applying (right-multiplication by) adjacent transpositions, is always possible and requires a sequence of ''k'' such operations. Moreover, any reasonable choice for the adjacent transpositions will work: it suffices to choose at each step a transposition of ''i'' and where ''i'' is a descent of the permutation as modified so far (so that the transposition will remove this particular descent, although it might create other descents). This is so because applying such a transposition reduces the number of inversions by 1; as long as this number is not zero, the permutation is not the identity, so it has at least one descent. Bubble sort and
insertion sort Insertion sort is a simple sorting algorithm that builds the final sorted array (or list) one item at a time by comparisons. It is much less efficient on large lists than more advanced algorithms such as quicksort, heapsort, or merge sort. Howev ...
can be interpreted as particular instances of this procedure to put a sequence into order. Incidentally this procedure proves that any permutation ''σ'' can be written as a product of adjacent transpositions; for this one may simply reverse any sequence of such transpositions that transforms ''σ'' into the identity. In fact, by enumerating all sequences of adjacent transpositions that would transform ''σ'' into the identity, one obtains (after reversal) a ''complete'' list of all expressions of minimal length writing ''σ'' as a product of adjacent transpositions. The number of permutations of ''n'' with ''k'' inversions is expressed by a Mahonian number. This is the coefficient of q^k in the expansion of the product q! = \prod_^n\sum_^q^i = 1 \left(1 + q\right)\left(1 + q + q^2\right) \cdots \left(1 + q + q^2 + \cdots + q^\right), The notation q! denotes the
q-factorial In the mathematical field of combinatorics, the ''q''-Pochhammer symbol, also called the ''q''-shifted factorial, is the product (a;q)_n = \prod_^ (1-aq^k)=(1-a)(1-aq)(1-aq^2)\cdots(1-aq^), with (a;q)_0 = 1. It is a ''q''-analog of the Pochhamme ...
. This expansion commonly appears in the study of necklaces. Let \sigma \in S_n, i, j\in \ such that i and \sigma(i)>\sigma(j). In this case, say the weight of the inversion (i, j) is \sigma(i)-\sigma(j). Kobayashi (2011) proved the enumeration formula \sum_(\sigma(i)-\sigma(j)) = , \ where \le denotes Bruhat order in the
symmetric group In abstract algebra, the symmetric group defined over any set is the group whose elements are all the bijections from the set to itself, and whose group operation is the composition of functions. In particular, the finite symmetric grou ...
s. This graded partial order often appears in the context of
Coxeter group In mathematics, a Coxeter group, named after H. S. M. Coxeter, is an abstract group that admits a formal description in terms of reflections (or kaleidoscopic mirrors). Indeed, the finite Coxeter groups are precisely the finite Euclidean ref ...
s.


Permutations in computing


Numbering permutations

One way to represent permutations of ''n'' things is by an integer ''N'' with 0 ≤ ''N'' < ''n''!, provided convenient methods are given to convert between the number and the representation of a permutation as an ordered arrangement (sequence). This gives the most compact representation of arbitrary permutations, and in computing is particularly attractive when ''n'' is small enough that ''N'' can be held in a machine word; for 32-bit words this means ''n'' ≤ 12, and for 64-bit words this means ''n'' ≤ 20. The conversion can be done via the intermediate form of a sequence of numbers ''d''''n'', ''d''''n''−1, ..., ''d''2, ''d''1, where ''d''''i'' is a non-negative integer less than ''i'' (one may omit ''d''1, as it is always 0, but its presence makes the subsequent conversion to a permutation easier to describe). The first step then is to simply express ''N'' in the '' factorial number system'', which is just a particular mixed radix representation, where, for numbers less than ''n''!, the bases (place values or multiplication factors) for successive digits are , , ..., 2!, 1!. The second step interprets this sequence as a Lehmer code or (almost equivalently) as an inversion table. In the Lehmer code for a permutation ''σ'', the number ''d''''n'' represents the choice made for the first term ''σ''1, the number ''d''''n''−1 represents the choice made for the second term ''σ''2 among the remaining elements of the set, and so forth. More precisely, each ''d''''n''+1−''i'' gives the number of ''remaining'' elements strictly less than the term ''σ''''i''. Since those remaining elements are bound to turn up as some later term ''σ''''j'', the digit ''d''''n''+1−''i'' counts the ''inversions'' (''i'',''j'') involving ''i'' as smaller index (the number of values ''j'' for which ''i'' < ''j'' and ''σ''''i'' > ''σ''''j''). The inversion table for ''σ'' is quite similar, but here ''d''''n''+1−''k'' counts the number of inversions (''i'',''j'') where ''k'' = ''σ''''j'' occurs as the smaller of the two values appearing in inverted order. Both encodings can be visualized by an ''n'' by ''n'' Rothe diagram (named after
Heinrich August Rothe Heinrich August Rothe (1773–1842) was a German mathematician, a professor of mathematics at Erlangen. He was a student of Carl Hindenburg and a member of Hindenburg's school of combinatorics. Biography Rothe was born in 1773 in Dresden, and in ...
) in which dots at (''i'',''σ''''i'') mark the entries of the permutation, and a cross at (''i'',''σ''''j'') marks the inversion (''i'',''j''); by the definition of inversions a cross appears in any square that comes both before the dot (''j'',''σ''''j'') in its column, and before the dot (''i'',''σ''''i'') in its row. The Lehmer code lists the numbers of crosses in successive rows, while the inversion table lists the numbers of crosses in successive columns; it is just the Lehmer code for the inverse permutation, and vice versa. To effectively convert a Lehmer code ''d''''n'', ''d''''n''−1, ..., ''d''2, ''d''1 into a permutation of an ordered set ''S'', one can start with a list of the elements of ''S'' in increasing order, and for ''i'' increasing from 1 to ''n'' set ''σ''''i'' to the element in the list that is preceded by ''d''''n''+1−''i'' other ones, and remove that element from the list. To convert an inversion table ''d''''n'', ''d''''n''−1, ..., ''d''2, ''d''1 into the corresponding permutation, one can traverse the numbers from ''d''1 to ''d''''n'' while inserting the elements of ''S'' from largest to smallest into an initially empty sequence; at the step using the number ''d'' from the inversion table, the element from ''S'' inserted into the sequence at the point where it is preceded by ''d'' elements already present. Alternatively one could process the numbers from the inversion table and the elements of ''S'' both in the opposite order, starting with a row of ''n'' empty slots, and at each step place the element from ''S'' into the empty slot that is preceded by ''d'' other empty slots. Converting successive natural numbers to the factorial number system produces those sequences in
lexicographic order In mathematics, the lexicographic or lexicographical order (also known as lexical order, or dictionary order) is a generalization of the alphabetical order of the dictionaries to sequences of ordered symbols or, more generally, of elements of a ...
(as is the case with any mixed radix number system), and further converting them to permutations preserves the lexicographic ordering, provided the Lehmer code interpretation is used (using inversion tables, one gets a different ordering, where one starts by comparing permutations by the ''place'' of their entries 1 rather than by the value of their first entries). The sum of the numbers in the factorial number system representation gives the number of inversions of the permutation, and the parity of that sum gives the
signature A signature (; from , "to sign") is a depiction of someone's name, nickname, or even a simple "X" or other mark that a person writes on documents as a proof of identity and intent. Signatures are often, but not always, Handwriting, handwritt ...
of the permutation. Moreover, the positions of the zeroes in the inversion table give the values of left-to-right maxima of the permutation (in the example 6, 8, 9) while the positions of the zeroes in the Lehmer code are the positions of the right-to-left minima (in the example positions the 4, 8, 9 of the values 1, 2, 5); this allows computing the distribution of such extrema among all permutations. A permutation with Lehmer code ''d''''n'', ''d''''n''−1, ..., ''d''2, ''d''1 has an ascent if and only if .


Algorithms to generate permutations

In computing it may be required to generate permutations of a given sequence of values. The methods best adapted to do this depend on whether one wants some randomly chosen permutations, or all permutations, and in the latter case if a specific ordering is required. Another question is whether possible equality among entries in the given sequence is to be taken into account; if so, one should only generate distinct multiset permutations of the sequence. An obvious way to generate permutations of ''n'' is to generate values for the Lehmer code (possibly using the factorial number system representation of integers up to ''n''!), and convert those into the corresponding permutations. However, the latter step, while straightforward, is hard to implement efficiently, because it requires ''n'' operations each of selection from a sequence and deletion from it, at an arbitrary position; of the obvious representations of the sequence as an array or a
linked list In computer science, a linked list is a linear collection of data elements whose order is not given by their physical placement in memory. Instead, each element points to the next. It is a data structure consisting of a collection of nodes whi ...
, both require (for different reasons) about ''n''2/4 operations to perform the conversion. With ''n'' likely to be rather small (especially if generation of all permutations is needed) that is not too much of a problem, but it turns out that both for random and for systematic generation there are simple alternatives that do considerably better. For this reason it does not seem useful, although certainly possible, to employ a special data structure that would allow performing the conversion from Lehmer code to permutation in ''O''(''n'' log ''n'') time.


Random generation of permutations

For generating random permutations of a given sequence of ''n'' values, it makes no difference whether one applies a randomly selected permutation of ''n'' to the sequence, or chooses a random element from the set of distinct (multiset) permutations of the sequence. This is because, even though in case of repeated values there can be many distinct permutations of ''n'' that result in the same permuted sequence, the number of such permutations is the same for each possible result. Unlike for systematic generation, which becomes unfeasible for large ''n'' due to the growth of the number ''n''!, there is no reason to assume that ''n'' will be small for random generation. The basic idea to generate a random permutation is to generate at random one of the ''n''! sequences of integers ''d''1,''d''2,...,''d''''n'' satisfying (since ''d''1 is always zero it may be omitted) and to convert it to a permutation through a
bijective In mathematics, a bijection, bijective function, or one-to-one correspondence is a function between two sets such that each element of the second set (the codomain) is the image of exactly one element of the first set (the domain). Equival ...
correspondence. For the latter correspondence one could interpret the (reverse) sequence as a Lehmer code, and this gives a generation method first published in 1938 by
Ronald Fisher Sir Ronald Aylmer Fisher (17 February 1890 – 29 July 1962) was a British polymath who was active as a mathematician, statistician, biologist, geneticist, and academic. For his work in statistics, he has been described as "a genius who a ...
and Frank Yates. While at the time computer implementation was not an issue, this method suffers from the difficulty sketched above to convert from Lehmer code to permutation efficiently. This can be remedied by using a different bijective correspondence: after using ''d''''i'' to select an element among ''i'' remaining elements of the sequence (for decreasing values of ''i''), rather than removing the element and compacting the sequence by shifting down further elements one place, one swaps the element with the final remaining element. Thus the elements remaining for selection form a consecutive range at each point in time, even though they may not occur in the same order as they did in the original sequence. The mapping from sequence of integers to permutations is somewhat complicated, but it can be seen to produce each permutation in exactly one way, by an immediate induction. When the selected element happens to be the final remaining element, the swap operation can be omitted. This does not occur sufficiently often to warrant testing for the condition, but the final element must be included among the candidates of the selection, to guarantee that all permutations can be generated. The resulting algorithm for generating a random permutation of ''a'' ''a'' ..., ''a'' 'n'' − 1/code> can be described as follows in
pseudocode In computer science, pseudocode is a description of the steps in an algorithm using a mix of conventions of programming languages (like assignment operator, conditional operator, loop) with informal, usually self-explanatory, notation of actio ...
: for ''i'' from ''n'' downto 2 do ''di'' ← random element of swap ''a'' 'di''and ''a'' 'i'' − 1 This can be combined with the initialization of the array ''a'' 'i''= ''i'' as follows for ''i'' from 0 to ''n''−1 do ''d''''i''+1 ← random element of ''a'' 'i''← ''a'' 'd''''i''+1 ''a'' 'd''''i''+1← ''i'' If ''d''''i''+1 = ''i'', the first assignment will copy an uninitialized value, but the second will overwrite it with the correct value ''i''. However, Fisher-Yates is not the fastest algorithm for generating a permutation, because Fisher-Yates is essentially a sequential algorithm and "divide and conquer" procedures can achieve the same result in parallel.


Generation in lexicographic order

There are many ways to systematically generate all permutations of a given sequence. One classic, simple, and flexible algorithm is based upon finding the next permutation in
lexicographic ordering In mathematics, the lexicographic or lexicographical order (also known as lexical order, or dictionary order) is a generalization of the alphabetical order of the dictionaries to sequences of ordered symbols or, more generally, of elements of a ...
, if it exists. It can handle repeated values, for which case it generates each distinct multiset permutation once. Even for ordinary permutations it is significantly more efficient than generating values for the Lehmer code in lexicographic order (possibly using the factorial number system) and converting those to permutations. It begins by sorting the sequence in (weakly) increasing order (which gives its lexicographically minimal permutation), and then repeats advancing to the next permutation as long as one is found. The method goes back to Narayana Pandita in 14th century India, and has been rediscovered frequently. The following algorithm generates the next permutation lexicographically after a given permutation. It changes the given permutation in-place. # Find the largest index ''k'' such that . If no such index exists, the permutation is the last permutation. # Find the largest index ''l'' greater than ''k'' such that . # Swap the value of ''a'' 'k''with that of ''a'' 'l'' # Reverse the sequence from ''a'' 'k'' + 1up to and including the final element ''a'' 'n'' For example, given the sequence
, 2, 3, 4 The comma is a punctuation mark that appears in several variants in different languages. Some typefaces render it as a small line, slightly curved or straight, but inclined from the vertical; others give it the appearance of a miniature fille ...
(which is in increasing order), and given that the index is zero-based, the steps are as follows: # Index ''k'' = 2, because 3 is placed at an index that satisfies condition of being the largest index that is still less than ''a'' 'k'' + 1which is 4. # Index ''l'' = 3, because 4 is the only value in the sequence that is greater than 3 in order to satisfy the condition ''a'' 'k''< ''a'' 'l'' # The values of ''a'' and ''a'' are swapped to form the new sequence
, 2, 4, 3 The comma is a punctuation mark that appears in several variants in different languages. Some typefaces render it as a small line, slightly curved or straight, but inclined from the vertical; others give it the appearance of a miniature fille ...
# The sequence after ''k''-index ''a'' to the final element is reversed. Because only one value lies after this index (the 3), the sequence remains unchanged in this instance. Thus the lexicographic successor of the initial state is permuted:
, 2, 4, 3 The comma is a punctuation mark that appears in several variants in different languages. Some typefaces render it as a small line, slightly curved or straight, but inclined from the vertical; others give it the appearance of a miniature fille ...
Following this algorithm, the next lexicographic permutation will be
, 3, 2, 4 The comma is a punctuation mark that appears in several variants in different languages. Some typefaces render it as a small line, slightly curved or straight, but inclined from the vertical; others give it the appearance of a miniature fille ...
and the 24th permutation will be
, 3, 2, 1 The comma is a punctuation mark that appears in several variants in different languages. Some typefaces render it as a small line, slightly curved or straight, but inclined from the vertical; others give it the appearance of a miniature fille ...
at which point ''a'' 'k''< ''a'' 'k'' + 1does not exist, indicating that this is the last permutation. This method uses about 3 comparisons and 1.5 swaps per permutation, amortized over the whole sequence, not counting the initial sort.


Generation with minimal changes

An alternative to the above algorithm, the Steinhaus–Johnson–Trotter algorithm, generates an ordering on all the permutations of a given sequence with the property that any two consecutive permutations in its output differ by swapping two adjacent values. This ordering on the permutations was known to 17th-century English bell ringers, among whom it was known as "plain changes". One advantage of this method is that the small amount of change from one permutation to the next allows the method to be implemented in constant time per permutation. The same can also easily generate the subset of even permutations, again in constant time per permutation, by skipping every other output permutation. An alternative to Steinhaus–Johnson–Trotter is Heap's algorithm, said by Robert Sedgewick in 1977 to be the fastest algorithm of generating permutations in applications. The following figure shows the output of all three aforementioned algorithms for generating all permutations of length n=4, and of six additional algorithms described in the literature. # Lexicographic ordering; # Steinhaus–Johnson–Trotter algorithm; # Heap's algorithm; # Ehrlich's star-transposition algorithm: in each step, the first entry of the permutation is exchanged with a later entry; # Zaks' prefix reversal algorithm: in each step, a prefix of the current permutation is reversed to obtain the next permutation; # Sawada-Williams' algorithm: each permutation differs from the previous one either by a cyclic left-shift by one position, or an exchange of the first two entries; # Corbett's algorithm: each permutation differs from the previous one by a cyclic left-shift of some prefix by one position; # Single-track ordering: each column is a cyclic shift of the other columns; # Single-track Gray code: each column is a cyclic shift of the other columns, plus any two consecutive permutations differ only in one or two transpositions. # Nested swaps generating algorithm in steps connected to the nested subgroups S_k\subset S_. Each permutation is obtained from the previous by a transposition multiplication to the left. Algorithm is connected to the Factorial_number_system of the index.


Generation of permutations in nested swap steps

Explicit sequence of swaps (transpositions, 2-cycles (pq)), is described here, each swap applied (on the left) to the previous chain providing a new permutation, such that all the permutations can be retrieved, each only once. This counting/generating procedure has an additional structure (call it nested), as it is given in steps: after completely retrieving S_, continue retrieving S_\backslash S_ by cosets S_\tau_i of S_ in S_k, by appropriately choosing the coset representatives \tau_i to be described below. Since each S_m is sequentially generated, there is a ''last element'' \lambda_m\in S_m. So, after generating S_ by swaps, the next permutation in S_\backslash S_ has to be \tau_1=(p_1k)\lambda_ for some 1\leq p_1. Then all swaps that generated S_ are repeated, generating the whole coset S_\tau_1, reaching the last permutation in that coset \lambda_\tau_1; the next swap has to move the permutation to representative of another coset \tau_2=(p_2k)\lambda_\tau_1. Continuing the same way, one gets coset representatives \tau_j=(p_k)\lambda_\cdots \lambda_(p_k)\lambda_\cdots\lambda_(p_k)\lambda_ for the cosets of S_ in S_k; the ordered set (p_1,\ldots , p_) (0\leq p_i) is called the set of coset beginnings. Two of these representatives are in the same coset if and only if \tau_j(\tau_i)^=(p_k)\lambda_(p_k)\lambda_\cdots \lambda_(p_k)=\varkappa_\in S_, that is, \varkappa_ (k)=k. Concluding, permutations \tau_i\in S_k-S_ are all representatives of distinct cosets if and only if for any k>j>i\geq 1, (\lambda_)^p_\neq p_j (no repeat condition). In particular, for all generated permutations to be distinct it is not necessary for the p_i values to be distinct. In the process, one gets that \lambda_k=\lambda_(p_k)\lambda_(p_k)\lambda_\cdots\lambda_(p_k)\lambda_ and this provides the recursion procedure. EXAMPLES: obviously, for \lambda_2 one has \lambda_2=(12); to build \lambda_3 there are only two possibilities for the coset beginnings satisfying the no repeat condition; the choice p_1=p_2=1 leads to \lambda_3=\lambda_2(13)\lambda_2(13)\lambda_2=(13). To continue generating S_4 one needs appropriate coset beginnings (satisfying the no repeat condition): there is a convenient choice: p_1=1, p_2=2, p_3=3, leading to \lambda_4=(13)(1234)(13)=(1432). Then, to build \lambda_5 a convenient choice for the coset beginnings (satisfying the no repeat condition) is p_1=p_2=p_3=p_4=1, leading to \lambda_5=(15). From examples above one can inductively go to higher k in a similar way, choosing coset beginnings of S_ in S_, as follows: for k even choosing all coset beginnings equal to 1 and for k odd choosing coset beginnings equal to (1, 2,\dots , k). With such choices the "last" permutation is \lambda_k=(1k) for k odd and \lambda_k=(1k_-)(12\cdots k)(1k_-) for k even (k_-=k-1). Using these explicit formulae one can easily compute the permutation of certain index in the counting/generation steps with minimum computation. For this, writing the index in factorial base is useful. For example, the permutation for index 699=5(5!)+4(4!)+1(2!)+1(1!) is: \sigma=\lambda_2(13)\lambda_2(15)\lambda_4(15)\lambda_4(15)\lambda_4(15)\lambda_4(56)\lambda_5(46)\lambda_5(36)\lambda_5(26)\lambda_5(16)\lambda_5= \lambda_2(13)\lambda_2((15)\lambda_4)^4(\lambda_5)^\lambda_6=(23)(14325)^(15)(15)(123456)(15)=(23)(15234)(123456)(15), yelding finally, \sigma=(1653)(24). Because multiplying by swap permutation takes short computing time and every new generated permutation requires only one such swap multiplication, this generation procedure is quite efficient. Moreover as there is a simple formula, having the last permutation in each S_k can save even more time to go directly to a permutation with certain index in fewer steps than expected as it can be done in blocks of subgroups rather than swap by swap.


Applications

Permutations are used in the interleaver component of the
error detection and correction In information theory and coding theory with applications in computer science and telecommunications, error detection and correction (EDAC) or error control are techniques that enable reliable delivery of digital data over unreliable communi ...
algorithms, such as turbo codes, for example 3GPP Long Term Evolution mobile telecommunication standard uses these ideas (see 3GPP technical specification 36.212). Such applications raise the question of fast generation of permutations satisfying certain desirable properties. One of the methods is based on the permutation polynomials. Also as a base for optimal hashing in Unique Permutation Hashing.


See also

* Alternating permutation *
Convolution In mathematics (in particular, functional analysis), convolution is a operation (mathematics), mathematical operation on two function (mathematics), functions f and g that produces a third function f*g, as the integral of the product of the two ...
* Cyclic order *
Even and odd permutations In mathematics, when ''X'' is a finite set with at least two elements, the permutations of ''X'' (i.e. the bijective functions from ''X'' to ''X'') fall into two classes of equal size: the even permutations and the odd permutations. If any tota ...
* Josephus permutation *
Levi-Civita symbol In mathematics, particularly in linear algebra, tensor analysis, and differential geometry, the Levi-Civita symbol or Levi-Civita epsilon represents a collection of numbers defined from the sign of a permutation of the natural numbers , for some ...
* List of permutation topics * Major index * Permutation category *
Permutation group In mathematics, a permutation group is a group ''G'' whose elements are permutations of a given set ''M'' and whose group operation is the composition of permutations in ''G'' (which are thought of as bijective functions from the set ''M'' to ...
*
Permutation pattern In combinatorial mathematics and theoretical computer science, a (classical) permutation pattern is a sub-permutation of a longer permutation. Any permutation may be written in one-line notation as a sequence of entries representing the result of a ...
* Permutation representation (symmetric group) *
Probability Probability is a branch of mathematics and statistics concerning events and numerical descriptions of how likely they are to occur. The probability of an event is a number between 0 and 1; the larger the probability, the more likely an e ...
* Rencontres numbers * Sorting network *
Substitution cipher In cryptography, a substitution cipher is a method of encrypting in which units of plaintext are replaced with the ciphertext, in a defined manner, with the help of a key; the "units" may be single letters (the most common), pairs of letters, t ...
* Superpattern * Superpermutation * Twelvefold way * Weak order of permutations


Notes


References


Bibliography

* * * * * * * * * * * This book mentions the Lehmer code (without using that name) as a variant ''C''1,...,''C''''n'' of inversion tables in exercise 5.1.1–7 (p. 19), together with two other variants. * Fascicle 2, first printing. * * * * The publisher is given as "W.S." who may have been William Smith, possibly acting as agent for the Society of College Youths, to which society the "Dedicatory" is addressed. ''In quotations the original long "S" has been replaced by a modern short "s".'' * *


Further reading

* * . The link is to a freely available retyped (LaTeX'ed) and revised version of the text originally published by Springer-Verlag. * . Section 5.1: Combinatorial Properties of Permutations, pp. 11–72. * *


External links

* {{Authority control Arab inventions