Recent from talks
Nothing was collected or created yet.
Permutation
View on Wikipedia
In mathematics, a permutation of a set can mean one of two different things:
- an arrangement of its members in a sequence or linear order, or
- the act or process of changing the linear order of an ordered set.[1]
An example of the first meaning is the six permutations (orderings) of the set {1, 2, 3}: written as tuples, they are (1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), and (3, 2, 1). Anagrams 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 sets is an important topic in combinatorics and group theory.
Permutations are used in almost every branch of mathematics and in many other fields of science. In computer science, they are used for analyzing sorting algorithms; in quantum physics, for describing states of particles; and in biology, for describing RNA sequences.
The number of permutations of n distinct objects is n factorial, usually written as n!, which means the product of all positive integers less than or equal to n.
According to the second meaning, a permutation of a set S is defined as a bijection from S to itself.[2][3] That is, it is a function from S to S for which every element occurs exactly once as an image value. Such a function is equivalent to the rearrangement of the elements of S in which each element i is replaced by the corresponding . For example, the permutation (3, 1, 2) corresponds to the function defined as The collection of all permutations of a set form a group called the symmetric group of the set. The group operation is the composition of functions (performing one rearrangement after the other), which results in another function (rearrangement).
In elementary combinatorics, the k-permutations, or partial permutations, are the ordered arrangements of k distinct elements selected from a set. When k is equal to the size of the set, these are the permutations in the previous sense.

History
[edit]Permutation-like objects called hexagrams were used in China in the I Ching (Pinyin: Yi Jing) as early as 1000 BC.
In Greece, Plutarch wrote that Xenocrates 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.[4]
Al-Khalil (717–786), an Arab mathematician and cryptographer, wrote the Book of Cryptographic Messages. It contains the first use of permutations and combinations, to list all possible Arabic words with and without vowels.[5]
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 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.[6]
In 1677, Fabian Stedman described factorials when explaining the number of permutations of bells in change ringing. 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.[7] 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".[8] 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.[9] 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;[10]
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.[11]
A first case in which seemingly unrelated mathematical questions were studied with the help of permutations occurred around 1770, when Joseph Louis Lagrange, in the study of polynomial equations, observed that properties of the permutations of the roots of an equation are related to the possibilities to solve it. This line of work ultimately resulted, through the work of Évariste Galois, in Galois theory, 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 (1815 memoir).
Permutations played an important role in the cryptanalysis of the Enigma machine, a cipher device used by Nazi Germany during World War II. 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 to break the German Enigma cipher in turn of years 1932-1933.[12][13]
Definition
[edit]In mathematics texts it is customary to denote permutations using lowercase Greek letters.[14]
A permutation can be defined as a bijection (an invertible mapping, a one-to-one and onto function) from a set S to itself: The identity permutation is defined by for all elements , and can be denoted by the number ,[a] by , or by a single 1-cycle (x).[15][16]
The set of all permutations of a set with n elements forms the symmetric group , where the group operation is composition of functions. Thus for two permutations and in the group , their product is defined by Composition is usually written without a dot or other sign. In general, composition of two permutations is not commutative; that is, typically the permutations and are not equal.
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.[17] According to this definition, all permutations in § One-line notation are passive. This meaning is subtly distinct from how passive (i.e. alias) is used in Active and passive transformation and elsewhere,[18][19] which would consider all permutations open to passive interpretation (regardless of whether they are in one-line notation, two-line notation, etc.).
A permutation can be decomposed into one or more disjoint cycles which are the orbits of the cyclic group acting on the set S. A cycle is found by repeatedly applying the permutation to an element: , where we assume . A cycle consisting of k elements is called a k-cycle. (See § Cycle notation below.)
A fixed point of a permutation is an element x which is taken to itself, that is , forming a 1-cycle . 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
[edit]Several notations are widely used to represent permutations conveniently. 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 . 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
[edit]Cauchy's two-line notation[20][21] 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 = {1, 2, 3, 4, 5, 6} given by the function
can be written as
The elements of S may appear in any order in the first row, so this permutation could also be written:
One-line notation
[edit]If there is a "natural" order for the elements of S,[b] say , then one uses this for the first row of the two-line notation:
Under this assumption, one may omit the first row and write the permutation in one-line notation as
- ,
that is, as an ordered arrangement of the elements of S.[22][23] 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 representation.[24]
The example above would then be:
(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 and computer science. It is especially useful in applications where the permutations are to be compared as larger or smaller using lexicographic order.
Cycle notation
[edit]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 in cycle notation, one proceeds as follows:
- Write an opening bracket followed by an arbitrary element x of :
- Trace the orbit of x, writing down the values under successive applications of :
- Repeat until the value returns to x, and close the parenthesis without repeating x:
- Continue with an element y of S which was not yet written, and repeat the above process:
- 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 .[25]
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 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 can be written in cycle notation as:
This may be seen as the composition of cyclic permutations:
While permutations in general do not commute, disjoint cycles do; for example:
Also, each cycle can be rewritten from a different starting point; for example,
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,
Canonical cycle notation
[edit]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, is a permutation of in canonical cycle notation.[26]
Richard Stanley calls this the "standard representation" of a permutation,[27] and Martin Aigner uses "standard form".[24] 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.[28]
Composition of permutations
[edit]There are two ways to denote the composition of two permutations. In the most common notation, is the function that maps any element x to . The rightmost permutation is applied to the argument first,[29] 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.[30][31][32] In this notation, the permutation is often written as an exponent, so σ acting on x is written xσ; then the product is defined by . This article uses the first definition, where the rightmost permutation is applied first.
The function composition operation satisfies the axioms of a group. It is associative, meaning , and products of more than two permutations are usually written without parentheses. The composition operation also has an identity element (the identity permutation ), and each permutation has an inverse (its inverse function) with .
Other uses of the term permutation
[edit]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
[edit]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.[c][33][34] The number of such k-permutations (k-arrangements) of is denoted variously by such symbols as , , , , , or ,[35] computed by the formula:[36]
- ,
which is 0 when k > n, and otherwise is equal to
The product is well defined without the assumption that is a non-negative integer, and is of importance outside combinatorics as well; it is known as the Pochhammer symbol or as the -th falling factorial power :
This usage of the term permutation is closely associated with the term combination 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:
These numbers are also known as binomial coefficients, usually denoted :
Permutations with repetition
[edit]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 or strings over the alphabet S. If the set S has n elements, the number of k-tuples over S is
Permutations of multisets
[edit]
If M is a finite multiset, 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 of a word having some repeated letters is an example of a multiset permutation.[d] If the multiplicities of the elements of M (taken in some order) are , , ..., 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,[37]
For example, the number of distinct anagrams of the word MISSISSIPPI is:[38]
- .
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
[edit]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.[39][e] These can be formally defined as equivalence classes of ordinary permutations of these objects, for the equivalence relation 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 2There are (n – 1)! circular permutations of a set with n elements.
Properties
[edit]The number of permutations of n distinct objects is n!.
The number of n-permutations with k disjoint cycles is the signless Stirling number of the first kind, denoted or .[40]
Cycle type
[edit]The cycles (including the fixed points) of a permutation of a set with n elements partition that set; so the lengths of these cycles form an integer partition of n, which is called the cycle type (or sometimes cycle structure or cycle shape) of . There is a "1" in the cycle type for every fixed point of , a "2" for every transposition, and so on. The cycle type of is
This may also be written in a more compact form as [112231]. More precisely, the general form is , where are the numbers of cycles of respective length. The number of permutations of a given cycle type is[41]
- .
The number of cycle types of a set with n elements equals the value of the partition function .
Polya's cycle index polynomial is a generating function which counts permutations by their cycle type.
Conjugating permutations
[edit]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 by another permutation , which means forming the product . Here, is the conjugate of by and its cycle notation can be obtained by taking the cycle notation for and applying to all the entries in it.[42] It follows that two permutations are conjugate exactly when they have the same cycle type.
Order of a permutation
[edit]The order of a permutation is the smallest positive integer m so that . It is the least common multiple of the lengths of its cycles. For example, the order of is .
Parity of a permutation
[edit]Every permutation of a finite set can be expressed as the product of transpositions.[43] 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 , to each permutation. if is even and if is odd. Then for two permutations and
It follows that
The sign of a permutation is equal to the determinant of its permutation matrix (below).
Matrix representation
[edit]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 {1, 2, ..., n}. One natural approach is to define to be the linear transformation of which permutes the standard basis by , and define to be its matrix. That is, has its jth column equal to the n × 1 column vector : 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:
.
For example, the one-line permutations have product , and the corresponding matrices are:

It is also common in the literature to find the inverse convention, where a permutation σ is associated to the matrix 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, . In this correspondence, permutation matrices act on the right side of the standard row vectors : .
The Cayley table on the right shows these matrices for permutations of 3 elements.
Permutations of totally ordered sets
[edit]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 so that any two elements can be compared. The set {1, 2, ..., n} 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 .
Ascents, descents, runs, exceedances, records
[edit]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 . For example, the permutation 3452167 has ascents (at positions) 1, 2, 5, and 6.
Similarly, a descent is a position i < n with , so every i with 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.[44]
The number of permutations of n with k ascents is (by definition) the Eulerian number ; this is also the number of permutations of n with k descents. Some authors however define the Eulerian number as the number of permutations with k ascending runs, which corresponds to k − 1 descents.[45]
An exceedance of a permutation σ1σ2...σn is an index j such that σj > j. If the inequality is not strict (that is, σj ≥ j), 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.[46]
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
[edit]Foata's fundamental bijection transforms a permutation σ with a given canonical cycle form into the permutation whose one-line notation has the same sequence of elements with parentheses removed.[27][47] For example:
Here the first element in each canonical cycle of σ becomes a record (left-to-right maximum) of . Given , one may find its records and insert parentheses to construct the inverse transformation . Underlining the records in the above example: , which allows the reconstruction of the cycles of σ.
The following table shows and σ for the six permutations of S = {1, 2, 3}, with the bold text on each side showing the notation used in the bijection: one-line notation for and canonical cycle notation for σ.
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, . Furthermore, Foata's mapping takes an n-permutation with k weak exceedances to an n-permutation with k − 1 ascents.[47] For example, (2)(31) = 321 has k = 2 weak exceedances (at index 1 and 2), whereas f(321) = 231 has k − 1 = 1 ascent (at index 1; that is, from 2 to 3).
Inversions
[edit]
An inversion of a permutation σ is a pair (i, j) of positions where the entries of a permutation are in the opposite order: and .[49] Thus a descent is an inversion at two adjacent positions. For example, σ = 23154 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 i + 1 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 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.[50] This is the coefficient of in the expansion of the product
The notation denotes the q-factorial. This expansion commonly appears in the study of necklaces.
Let such that and . In this case, say the weight of the inversion is . Kobayashi (2011) proved the enumeration formula
where denotes Bruhat order in the symmetric groups. This graded partial order often appears in the context of Coxeter groups.
Permutations in computing
[edit]Numbering permutations
[edit]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 dn, dn−1, ..., d2, d1, where di is a non-negative integer less than i (one may omit d1, 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 (n − 1)!, (n − 2)!, ..., 2!, 1!. The second step interprets this sequence as a Lehmer code or (almost equivalently) as an inversion table.
σi i
|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Lehmer code |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | × | × | × | × | × | • | d9 = 5 | |||
| 2 | × | × | • | d8 = 2 | ||||||
| 3 | × | × | × | × | × | • | d7 = 5 | |||
| 4 | • | d6 = 0 | ||||||||
| 5 | × | • | d5 = 1 | |||||||
| 6 | × | × | × | • | d4 = 3 | |||||
| 7 | × | × | • | d3 = 2 | ||||||
| 8 | • | d2 = 0 | ||||||||
| 9 | • | d1 = 0 | ||||||||
| Inversion table | 3 | 6 | 1 | 2 | 4 | 0 | 2 | 0 | 0 |
In the Lehmer code for a permutation σ, the number dn represents the choice made for the first term σ1, the number dn−1 represents the choice made for the second term σ2 among the remaining n − 1 elements of the set, and so forth. More precisely, each dn+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 dn+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 dn+1−k counts the number of inversions (i,j) where k = σj occurs as the smaller of the two values appearing in inverted order.[51]
Both encodings can be visualized by an n by n Rothe diagram[52] (named after Heinrich August Rothe) 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 dn, dn−1, ..., d2, d1 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 dn+1−i other ones, and remove that element from the list. To convert an inversion table dn, dn−1, ..., d2, d1 into the corresponding permutation, one can traverse the numbers from d1 to dn 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 (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 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 dn, dn−1, ..., d2, d1 has an ascent n − i if and only if di ≥ di+1.
Algorithms to generate permutations
[edit]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, both require (for different reasons) about n2/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
[edit]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 d1,d2,...,dn satisfying 0 ≤ di < i (since d1 is always zero it may be omitted) and to convert it to a permutation through a bijective 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 and Frank Yates.[53] 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 di 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[0], a[1], ..., a[n − 1] can be described as follows in pseudocode:
for i from n downto 2 do
di ← random element of { 0, ..., i − 1 }
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
di+1 ← random element of { 0, ..., i }
a[i] ← a[di+1]
a[di+1] ← i
If di+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.[54]
Generation in lexicographic order
[edit]There are many ways to systematically generate all permutations of a given sequence.[55] One classic, simple, and flexible algorithm is based upon finding the next permutation in lexicographic ordering, 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.[56]
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 a[k] < a[k + 1]. If no such index exists, the permutation is the last permutation.
- Find the largest index l greater than k such that a[k] < a[l].
- Swap the value of a[k] with that of a[l].
- Reverse the sequence from a[k + 1] up to and including the final element a[n].
For example, given the sequence [1, 2, 3, 4] (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 + 1] which 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[2] and a[3] are swapped to form the new sequence [1, 2, 4, 3].
- The sequence after k-index a[2] 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: [1, 2, 4, 3].
Following this algorithm, the next lexicographic permutation will be [1, 3, 2, 4], and the 24th permutation will be [4, 3, 2, 1] at which point a[k] < a[k + 1] does 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.[57]
Generation with minimal changes
[edit]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.[56]
An alternative to Steinhaus–Johnson–Trotter is Heap's algorithm,[58] said by Robert Sedgewick in 1977 to be the fastest algorithm of generating permutations in applications.[55]
The following figure shows the output of all three aforementioned algorithms for generating all permutations of length , and of six additional algorithms described in the literature.

- Lexicographic ordering;
- Steinhaus–Johnson–Trotter algorithm;
- Heap's algorithm;
- Ehrlich's star-transposition algorithm:[56] in each step, the first entry of the permutation is exchanged with a later entry;
- Zaks' prefix reversal algorithm:[60] in each step, a prefix of the current permutation is reversed to obtain the next permutation;
- Sawada-Williams' algorithm:[61] 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:[62] each permutation differs from the previous one by a cyclic left-shift of some prefix by one position;
- Single-track ordering:[63] each column is a cyclic shift of the other columns;
- Single-track Gray code:[63] 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 . 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
[edit]Explicit sequence of swaps (transpositions, 2-cycles ), 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.[64] This counting/generating procedure has an additional structure (call it nested), as it is given in steps: after completely retrieving , continue retrieving by cosets of in , by appropriately choosing the coset representatives to be described below. Since each is sequentially generated, there is a last element . So, after generating by swaps, the next permutation in has to be for some . Then all swaps that generated are repeated, generating the whole coset , reaching the last permutation in that coset ; the next swap has to move the permutation to representative of another coset .
Continuing the same way, one gets coset representatives for the cosets of in ; the ordered set () is called the set of coset beginnings. Two of these representatives are in the same coset if and only if , that is, . Concluding, permutations are all representatives of distinct cosets if and only if for any , (no repeat condition). In particular, for all generated permutations to be distinct it is not necessary for the values to be distinct. In the process, one gets that and this provides the recursion procedure.
EXAMPLES: obviously, for one has ; to build there are only two possibilities for the coset beginnings satisfying the no repeat condition; the choice leads to . To continue generating one needs appropriate coset beginnings (satisfying the no repeat condition): there is a convenient choice: , leading to . Then, to build a convenient choice for the coset beginnings (satisfying the no repeat condition) is , leading to .
From examples above one can inductively go to higher in a similar way, choosing coset beginnings of in , as follows: for even choosing all coset beginnings equal to 1 and for odd choosing coset beginnings equal to . With such choices the "last" permutation is for odd and for even (). 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 is: , yelding finally, .
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 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
[edit]Permutations are used in the interleaver component of the error detection and correction algorithms, such as turbo codes, for example 3GPP Long Term Evolution mobile telecommunication standard uses these ideas (see 3GPP technical specification 36.212[65]). 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.[66]
See also
[edit]- Alternating permutation
- Convolution
- Cyclic order
- Even and odd permutations
- Josephus permutation
- Levi-Civita symbol
- List of permutation topics
- Major index
- Permutation category
- Permutation group
- Permutation pattern
- Permutation representation (symmetric group)
- Probability
- Rencontres numbers
- Sorting network
- Substitution cipher
- Superpattern
- Superpermutation
- Twelvefold way
- Weak order of permutations
Notes
[edit]- ^ 1 is frequently used to represent the identity element in a non-commutative group
- ^ The order is often implicitly understood. A set of integers is naturally written from smallest to largest; a set of letters is written in lexicographic order. For other sets, a natural order needs to be specified explicitly.
- ^ More precisely, variations without repetition. The term is still common in other languages and appears in modern English most often in translation.
- ^ The natural order in this example is the order of the letters in the original word.
- ^ In older texts circular permutation was sometimes used as a synonym for cyclic permutation, but this is no longer done. See Carmichael (1956, p. 7)
References
[edit]- ^ Webster (1969)
- ^ McCoy (1968, p. 152)
- ^ Nering (1970, p. 86)
- ^ Heath, Thomas Little (1981). A History of Greek Mathematics. New York: Dover Publications. ISBN 0-486-24073-8. OCLC 7703465.
- ^ Broemeling, Lyle D. (1 November 2011). "An Account of Early Statistical Inference in Arab Cryptology". The American Statistician. 65 (4): 255–257. doi:10.1198/tas.2011.10191. S2CID 123537702.
- ^ Biggs, N. L. (1979). "The Roots of Combinatorics". Historia Math. 6 (2): 109–136. doi:10.1016/0315-0860(79)90074-0.
- ^ Stedman 1677, p. 4.
- ^ Stedman 1677, p. 5.
- ^ Stedman 1677, pp. 6–7.
- ^ Stedman 1677, p. 8.
- ^ Stedman 1677, pp. 13–18.
- ^ Rejewski, Marian (1980). "An application of the theory of permutations in breaking the Enigma cipher". Applicationes Mathematicae. 16 (4): 543–559. doi:10.4064/am-16-4-543-559. ISSN 1233-7234.
- ^ Cash, David (2019). "CMSC 28400 Introduction to Cryptography Autumn 2019 - Notes #2: Permutations and Enigma" (PDF).
- ^ Scheinerman, Edward A. (March 5, 2012). "Chapter 5: Functions". Mathematics: A Discrete Introduction (3rd ed.). Cengage Learning. p. 188. ISBN 978-0840049421. Archived from the original on February 5, 2020. Retrieved February 5, 2020.
It is customary to use lowercase Greek letters (especially π, σ, and τ) to stand for permutations.
- ^ Rotman 2002, p. 41
- ^ Bogart 1990, p. 487
- ^ Cameron 1994, p. 29, footnote 3.
- ^ Conway, John H.; Burgiel, Heidi; Goodman-Strauss, Chaim (2008). The Symmetries of Things. A K Peters. p. 179.
A permutation---say, of the names of a number of people---can be thought of as moving either the names or the people. The alias viewpoint regards the permutation as assigning a new name or alias to each person (from the Latin alias = otherwise). Alternatively, from the alibi viewoint we move the people to the places corresponding to their new names (from the Latin alibi = in another place.)
- ^ "Permutation notation - Wikiversity". en.wikiversity.org. Retrieved 2024-08-04.
- ^ Cauchy, A. L. (January 1815). "Mémoire Sur le Nombre des Valeurs qu'une Fonction peut acquérir, lorsqu'on y permute de toutes les manières possibles les quantités qu'elle renferme" [Memoir on the number of values which a function can acquire when one permutes within it, in all possible ways, the variables which it contains]. Journal de l'École polytechnique (in French). 10: 1–28. See p. 4.
- ^ Wussing, Hans (2007), The Genesis of the Abstract Group Concept: A Contribution to the History of the Origin of Abstract Group Theory, Courier Dover Publications, p. 94, ISBN 9780486458687,
Cauchy used his permutation notation—in which the arrangements are written one below the other and both are enclosed in parentheses—for the first time in 1815.
- ^ Bogart 1990, p. 17
- ^ Gerstein 1987, p. 217
- ^ a b Aigner, Martin (2007). A Course in Enumeration. Springer GTM 238. pp. 24–25. ISBN 978-3-540-39035-0.
- ^ Hall 1959, p. 54
- ^ Bona 2012, p.87 [The book has a typo/error here, as it gives (45) instead of (54).]
- ^ a b Stanley, Richard P. (2012). Enumerative Combinatorics: Volume I, Second Edition. Cambridge University Press. p. 30, Prop 1.3.1. ISBN 978-1-107-01542-5.
- ^ Kitaev, Sergey (2011). Patterns in Permutations and Words. Springer Science & Business Media. p. 119. ISBN 978-3-642-17333-2.
- ^ Biggs, Norman L.; White, A. T. (1979). Permutation groups and combinatorial structures. Cambridge University Press. ISBN 978-0-521-22287-7.
- ^ Dixon, John D.; Mortimer, Brian (1996). Permutation Groups. Springer. ISBN 978-0-387-94599-6.
- ^ Cameron, Peter J. (1999). Permutation groups. Cambridge University Press. ISBN 978-0-521-65302-2.
- ^ Jerrum, M. (1986). "A compact representation of permutation groups". J. Algorithms. 7 (1): 60–78. doi:10.1016/0196-6774(86)90038-6. S2CID 18896625.
- ^ "Combinations and Permutations". www.mathsisfun.com. Retrieved 2020-09-10.
- ^ Weisstein, Eric W. "Permutation". mathworld.wolfram.com. Retrieved 2020-09-10.
- ^ Uspensky 1937, p. 18
- ^ Charalambides, Ch A. (2002). Enumerative Combinatorics. CRC Press. p. 42. ISBN 978-1-58488-290-9.
- ^ Brualdi 2010, p. 46, Theorem 2.4.2
- ^ Brualdi 2010, p. 47
- ^ Brualdi 2010, p. 39
- ^ Bona 2012, pp. 97–103.
- ^ Sagan, Bruce (2001), The Symmetric Group (2 ed.), Springer, p. 3
- ^ Humphreys 1996, p. 84.
- ^ Hall 1959, p. 60
- ^ Bóna 2004, p. 4f.
- ^ Bona 2012, pp. 4–5.
- ^ Bona 2012, p. 25.
- ^ a b Bona 2012, pp. 109–110.
- ^ Slocum, Jerry; Weisstein, Eric W. (1999). "15 – puzzle". MathWorld. Wolfram Research, Inc. Retrieved October 4, 2014.
- ^ Bóna 2004, p. 43.
- ^ Bóna 2004, pp. 43ff.
- ^ Knuth 1973, p. 12.
- ^ H. A. Rothe, Sammlung combinatorisch-analytischer Abhandlungen 2 (Leipzig, 1800), 263–305. Cited in Knuth 1973, p. 14
- ^ Fisher, R.A.; Yates, F. (1948) [1938]. Statistical tables for biological, agricultural and medical research (3rd ed.). London: Oliver & Boyd. pp. 26–27. OCLC 14222135.
- ^ Bacher, A.; Bodini, O.; Hwang, H.K.; Tsai, T.H. (2017). "Generating Random Permutations by Coin Tossing: Classical Algorithms, New Analysis, and Modern Implementation" (ACM Trans. Algorithms 13(2): 24:1–24:43 ed.). pp. 24–43.
- ^ a b Sedgewick, R (1977). "Permutation generation methods" (PDF). Computing Surveys. 9 (2): 137–164. doi:10.1145/356689.356692. S2CID 12139332. Archived (PDF) from the original on 2008-02-21.
- ^ a b c Knuth 2005, pp. 1–26.
- ^ "std::next_permutation". cppreference.com. 4 December 2017. Retrieved 31 March 2018.
- ^ Heap, B. R. (1963). "Permutations by Interchanges". The Computer Journal. 6 (3): 293–298. doi:10.1093/comjnl/6.3.293.
- ^ Mütze, Torsten; Sawada, Joe; Williams, Aaron. "Generate permutations". Combinatorial Object Server. Retrieved May 29, 2019.
- ^ Zaks, S. (1984). "A new algorithm for generation of permutations". BIT Numerical Mathematics. 24 (2): 196–204. doi:10.1007/BF01937486. S2CID 30234652.
- ^ Sawada, Joe; Williams, Aaron (2018). "A Hamilton path for the sigma-tau problem". Proceedings of the 29th Annual ACM-SIAM Symposium on Discrete Algorithms, SODA 2018. New Orleans, Louisiana: Society for Industrial and Applied Mathematics (SIAM). pp. 568–575. doi:10.1137/1.9781611975031.37.
- ^ Corbett, P. F. (1992). "Rotator graphs: An efficient topology for point-to-point multiprocessor networks". IEEE Transactions on Parallel and Distributed Systems. 3 (5): 622–626. doi:10.1109/71.159045.
- ^ a b Arndt, Jörg (2011). Matters Computational. Ideas, Algorithms, Source Code. Springer. doi:10.1007/978-3-642-14764-7. ISBN 978-3-642-14763-0.
- ^ Popp, O.T. (2002). Quickly Handling Big Permutations. priv. comm.
- ^ "3GPP TS 36.212".
- ^ Dolev, Shlomi; Lahiani, Limor; Haviv, Yinnon (2013). "Unique permutation hashing". Theoretical Computer Science. 475: 59–65. doi:10.1016/j.tcs.2012.12.047.
Bibliography
[edit]- Bogart, Kenneth P. (1990), Introductory Combinatorics (2nd ed.), Harcourt Brace Jovanovich, ISBN 978-0-15-541576-8
- Bóna, Miklós (2004), Combinatorics of Permutations, Chapman Hall-CRC, ISBN 978-1-58488-434-7
- Bona, Miklos (2012), Combinatorics of Permutations (2nd ed.), CRC Press, ISBN 978-1-4398-5051-0
- Brualdi, Richard A. (2010), Introductory Combinatorics (5th ed.), Prentice-Hall, ISBN 978-0-13-602040-0
- Cameron, Peter J. (1994), Combinatorics: Topics, Techniques, Algorithms, Cambridge University Press, ISBN 978-0-521-45761-3
- Carmichael, Robert D. (1956) [1937], Introduction to the theory of Groups of Finite Order, Dover, ISBN 978-0-486-60300-1
{{citation}}: ISBN / Date incompatibility (help) - Fraleigh, John B. (1976), A First Course In Abstract Algebra (2nd ed.), Reading: Addison-Wesley, ISBN 0-201-01984-1
- Gerstein, Larry J. (1987), Discrete Mathematics and Algebraic Structures, W.H. Freeman and Co., ISBN 978-0-7167-1804-8
- Hall, Marshall Jr. (1959), The Theory of Groups, MacMillan
- Humphreys, J. F. (1996), A course in group theory, Oxford University Press, ISBN 978-0-19-853459-4
- Knuth, Donald (1973), Sorting and Searching, The Art of Computer Programming, vol. 3 This book mentions the Lehmer code (without using that name) as a variant C1,...,Cn of inversion tables in exercise 5.1.1–7 (p. 19), together with two other variants.
- Knuth, Donald (2005), Generating All Tuples and Permutations, The Art of Computer Programming, vol. 4, Addison–Wesley, ISBN 978-0-201-85393-3 Fascicle 2, first printing.
- McCoy, Neal H. (1968), Introduction To Modern Algebra, Revised Edition, Boston: Allyn and Bacon, LCCN 68015225
- Nering, Evar D. (1970), Linear Algebra and Matrix Theory (2nd ed.), New York: Wiley, LCCN 76091646
- Rotman, Joseph J. (2002), Advanced Modern Algebra, Prentice-Hall, ISBN 978-0-13-087868-7
- Stedman, Fabian (1677), Campanalogia, London 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".
- Uspensky, James (1937), Introduction to Mathematical Probability, McGraw-Hill
- Webster's Seventh New Collegiate Dictionary, Springfield: G. & C. Merriam Company, 1969
Further reading
[edit]- Biggs, Norman L. (2002), Discrete Mathematics (2nd ed.), Oxford University Press, ISBN 978-0-19-850717-8
- Foata, Dominique; Schutzenberger, Marcel-Paul (1970), Théorie Géométrique des Polynômes Eulériens, Lecture Notes in Mathematics, vol. 138, Berlin, Heidelberg: Springer-Verlag, ISBN 978-3-540-04927-2. The link is to a freely available retyped (LaTeX'ed) and revised version of the text originally published by Springer-Verlag.
- Knuth, Donald (1998), Sorting and Searching, The Art of Computer Programming, vol. 3 (Second ed.), Addison–Wesley, ISBN 978-0-201-89685-5. Section 5.1: Combinatorial Properties of Permutations, pp. 11–72.
- Sedgewick, Robert (1977). "Permutation generation methods". ACM Computing Surveys. 9 (2): 137–164. doi:10.1145/356689.356692. S2CID 12139332.
- Masato, Kobayashi (2011). "Enumeration of bigrassmannian permutations below a permutation in Bruhat order". Order. 1: 131–137.
External links
[edit]- "Permutation", Encyclopedia of Mathematics, EMS Press, 2001 [1994]
Permutation
View on GrokipediaFundamentals
Definition
In mathematics, a permutation of a set is a bijection from to itself, meaning a function that is both injective (one-to-one) and surjective (onto).[3][11] For a finite set , this corresponds to a rearrangement of its elements, where each element is uniquely mapped to another in the set without omission or repetition.[12] The one-to-one property ensures that distinct elements in map to distinct elements, while the onto property guarantees every element in is the image of exactly one element; together, these imply that permutations preserve the cardinality of finite sets, as injectivity shows and surjectivity shows , yielding equality.[3] Formally, a permutation of satisfies for a unique corresponding to each , with the mapping covering all elements exactly once: This bijection can be verified by noting that the inverse exists and is also a bijection, confirming the structure.[12] The collection of all permutations of an -element set forms the symmetric group under the operation of function composition, which serves as the group operation.[3] The order of is , the number of distinct bijections, derived by choosing any of elements for the image of 1, then for 2, and so on down to 1.[11][12]Examples and Intuition
A permutation rearranges the elements of a set while preserving the set itself. For the set {1, 2, 3}, there are exactly six distinct permutations, which can be listed in one-line notation as follows: 123 (the identity, where each element stays in place), 132 (swapping 2 and 3), 213 (swapping 1 and 2), 231 (cycling 1 to 2, 2 to 3, 3 to 1), 312 (cycling 1 to 3, 3 to 2, 2 to 1), and 321 (reversing the order).[11] These examples illustrate how a permutation acts on positions: for instance, in 231, the element in position 1 moves to position 2, the element in position 2 moves to position 3, and the element in position 3 moves to position 1. To build intuition, consider permutations as the distinct ways to arrange a set of distinct objects in a sequence, where the order matters. For example, suppose three people—A, B, and C—are to be seated in a row of three chairs. The possible arrangements are ABC, ACB, BAC, BCA, CAB, and CBA, corresponding one-to-one with the permutations of {1, 2, 3} if we label A=1, B=2, C=3. This highlights that permutations capture all unique orderings without regard to rotations or reflections unless specified otherwise.[13] Visualizing the action of a permutation on positions versus values clarifies its dual nature. In the permutation 231 of {1, 2, 3}:- Positions: The value in position 1 (originally 1) goes to position 2; position 2 (originally 2) goes to position 3; position 3 (originally 3) goes to position 1.
- Values: 1 is sent to 2, 2 is sent to 3, and 3 is sent to 1.
| Position | Original Value | After Permutation (231) |
|---|---|---|
| 1 | 1 | 2 |
| 2 | 2 | 3 |
| 3 | 3 | 1 |
Notation
One-line Notation
One-line notation provides a compact representation of a permutation of the set by listing the images in sequence, typically enclosed in parentheses: . This notation treats the permutation as a word over the ordered alphabet , ensuring that each permutation corresponds uniquely to such a sequence without repetition. For example, the permutation that cycles three elements as is written in one-line notation as , indicating , , and .[15][11] The simplicity of one-line notation makes it particularly useful for enumerating permutations and performing computational tasks, such as generating all permutations of a set in lexicographic order, where sequences are ordered alphabetically based on their one-line representations. For instance, the permutations of in lexicographic order begin with , , , and so on. This format is injective, meaning distinct permutations yield distinct notations, and the original permutation can be directly recovered from the sequence.[16][15][17] To convert an explicit mapping to one-line notation, simply list the images in the order of the domain elements: for where , , , , and , the notation is . This process is straightforward and highlights the bijection nature of permutations. However, while effective for listing and ordering, one-line notation offers less insight into the cyclic decomposition of the permutation compared to alternatives like cycle notation.[15][11]Cycle Notation
Cycle notation provides a compact way to represent permutations by decomposing them into cycles, which highlight the structure of how elements are rearranged. A k-cycle is a permutation that cyclically shifts k distinct elements while fixing all others; it is denoted by , meaning the permutation maps to , to , ..., to , and back to .[18] This notation is defined up to cyclic rotation, so .[18] Any permutation of a finite set can be expressed as a product of one or more disjoint cycles, whose supports partition the set.[18] This disjoint cycle decomposition is unique up to the order of the cycles and the starting point within each cycle.[18] To obtain the decomposition, start with an arbitrary element not yet in a cycle, and follow its orbit under : compute , , and so on until returning to , forming a cycle; repeat with remaining elements until all are covered. This process yields disjoint cycles because orbits under partition the set into equivalence classes where two elements are related if one is reachable from the other by repeated application of .[19][20] For example, consider the permutation in one-line notation , which maps 1 to 2, 2 to 1, 3 to 3, and 4 to 4; its cycle decomposition is .[1] The identity permutation, which fixes every element, decomposes into a product of all 1-cycles, such as for a set of four elements.[1] Cycles of length 1, known as fixed points, are often omitted in the notation for brevity, so the identity is typically written with no cycles, and the example above simplifies to .[18][1] Since disjoint cycles involve distinct elements and thus commute under composition, the permutation is given by , where the are the disjoint cycles in the decomposition (with the product order irrelevant).[18][1]Two-line Notation
Two-line notation represents a permutation of the set by arranging the domain elements to in the upper row and their corresponding images in the lower row, often enclosed in parentheses or brackets for clarity./08%3A_Permutations_and_the_Determinant/8.01%3A_Permutations)[21] For example, the permutation that cycles three elements forward is written as indicating , , and .[22][23] This notation explicitly displays the bijection from the domain to the codomain, making it particularly useful in formal proofs and early mathematical texts where the full mapping must be evident./08%3A_Permutations_and_the_Determinant/8.01%3A_Permutations)[23] It originated with Augustin-Louis Cauchy in his 1815 memoir on permutations, tying into early developments in function notation for substitutions.[24] To convert a permutation from one-line notation—which lists only the images —to two-line notation, simply prepend the ordered domain row above it.[15] One advantage of two-line notation is its ease in verifying the permutation property: injectivity follows from no repeated entries in the lower row, and surjectivity from the presence of all elements from 1 to there, allowing quick scans without additional computation./08%3A_Permutations_and_the_Determinant/8.01%3A_Permutations)[23]Properties
Cycle Structure
Every permutation of a finite set admits a unique decomposition into a product of disjoint cycles, up to the ordering of the cycles and the choice of starting points within each cycle. This uniqueness theorem follows from the fact that the orbits of the cyclic subgroup generated by the permutation partition the set uniquely, with each orbit corresponding to a cycle in the decomposition. To construct the decomposition explicitly, begin with the smallest element not yet included in a cycle, apply the permutation repeatedly until returning to the starting element to form the cycle, then repeat the process with the next smallest unused element until all elements are covered; fixed points (1-cycles) may be omitted in the notation.[25] The cycle structure of a permutation is determined by its cycle type, which is the partition of (the size of the set) given by the lengths of the cycles in the decomposition, typically written in decreasing order and including 1-cycles only implicitly. For example, a permutation in consisting of a 3-cycle and two fixed points has cycle type (3,1,1), corresponding to the partition . This type captures the symmetry of the permutation and is invariant under conjugation in the symmetric group.[25] In the symmetric group , permutations are classified by the following cycle types, each representing a distinct partition of 4:| Cycle Type | Description | Example |
|---|---|---|
| (4) | One 4-cycle | (1 2 3 4) |
| (3,1) | One 3-cycle, one fixed point | (1 2 3) |
| (2,2) | Two 2-cycles | (1 2)(3 4) |
| (2,1,1) | One 2-cycle, two fixed points | (1 2) |
| (1,1,1,1) | Four fixed points (identity) | () |
Order of a Permutation
The order of a permutation in the symmetric group is defined as the smallest positive integer such that is the identity permutation.[26] When a permutation is expressed as a product of disjoint cycles, its order is the least common multiple (LCM) of the lengths of those cycles.[27] This follows because disjoint cycles commute and act independently on their respective supports, so equals the identity if and only if is a multiple of the length of each cycle; thus, the smallest such is the LCM of the cycle lengths.[26] Formally, if is the disjoint cycle decomposition of with denoting the length of for each , then the order of is .[27] For example, consider the permutation in , which decomposes into a 3-cycle and a 2-cycle, so its order is .[26] To verify, compute the powers: , , , , , and . No smaller positive exponent yields the identity.[27]Parity of a Permutation
A permutation is defined as even if it can be expressed as a product of an even number of transpositions and odd if it can be expressed as a product of an odd number of transpositions.[28][29] The sign function, denoted , assigns to even permutations and to odd permutations, formally given by , where is the number of transpositions in such a decomposition.[30] This parity is well-defined, meaning it does not depend on the particular decomposition into transpositions, as any two decompositions of the same permutation into transpositions must have lengths congruent modulo 2.[30] The proof relies on showing that if equals two products of and transpositions, then is even, using the fact that the identity permutation cannot be written as an odd number of transpositions.[30] In terms of cycle decomposition, the sign can be computed as , where is the number of cycles in (including fixed points of length 1), or equivalently over the lengths of the cycles.[31][32] This follows because a -cycle decomposes into transpositions, so its sign is , and the overall sign is the product over disjoint cycles.[30][32] For examples, a transposition (2-cycle) is odd, as it is already one transposition with .[30] A 3-cycle, such as , decomposes into two transpositions and is thus even with .[30] In , the even permutations are the identity and the two 3-cycles and , while the three transpositions , , and are odd.[28][29] The sign function is a group homomorphism from to the multiplicative group , satisfying for all .[30][31] This multiplicative property holds because the product decomposes into a number of transpositions equal to the sum of those in and .[30]Conjugacy and Cycle Type
In the symmetric group , two permutations and are conjugate if there exists some such that .[33] A fundamental theorem states that in , two permutations are conjugate if and only if they have the same cycle type.[33] The cycle type of a permutation is the multiset of the lengths of its disjoint cycles in its cycle decomposition, which corresponds to a partition of .[33] Thus, the conjugacy classes of are precisely the sets of permutations sharing the same cycle type, and the number of such classes equals , the number of integer partitions of .[34] To see why conjugation preserves cycle type, consider a permutation decomposed into disjoint cycles , where each is a cycle of length . For any , the conjugate is . Each is a cycle of the same length , obtained by applying to the elements of , and the cycles remain disjoint.[33] Conversely, given two permutations with the same cycle type, one can construct a that maps the cycles of one to the cycles of the other while preserving lengths, ensuring conjugacy.[33] For example, in , the cycle type consisting of two disjoint 2-cycles, such as , forms a single conjugacy class; all double transpositions are conjugate to each other via suitable relabeling in .[35] The conjugacy classes of correspond to the partitions of 4: (4), (3,1), (2,2), (2,1,1), and (1,1,1,1).[35] Permutations in can also be represented as permutation matrices, which have exactly one 1 in each row and column, with the rest 0s. Two such matrices are similar via conjugation by another permutation matrix if and only if the corresponding permutations have the same cycle type.[36]Variations
k-Permutations
A k-permutation of a set of n elements is an ordered selection of k distinct elements from the set, where the order of selection matters and no element is repeated. Equivalently, it corresponds to the number of injective functions (one-to-one mappings) from a set of k elements to a set of n elements, ensuring each selected element is uniquely assigned without overlap.[37][38] The number of such k-permutations, denoted , is given by the formula where denotes the factorial of n (the product of all positive integers up to n). This arises from the sequential choice process: there are n options for the first position, n-1 for the second, and so on, down to n-k+1 for the k-th position. Thus, This product equals because the full factorial includes the remaining (n-k) terms in the denominator, which cancel out the unnecessary factors.[38][37] For example, consider a set {1, 2, 3} with n=3 and k=2. The possible 2-permutations are (1,2), (1,3), (2,1), (2,3), (3,1), and (3,2), totaling . In contrast to combinations, which count unordered selections (e.g., {1,2} is the same regardless of order, yielding ), k-permutations distinguish between arrangements like (1,2) and (2,1) as distinct.[39][38] When k = n, the formula simplifies to , which counts the full permutations of the entire set.[37]Permutations of Multisets
A permutation of a multiset is a rearrangement of its elements, where the presence of identical elements means that some arrangements are indistinguishable from others. For a multiset consisting of elements, with identical copies of the -th type for , the number of distinct permutations is given by the multinomial coefficient This formula arises because there are ways to arrange elements if all were distinct, but for each type , the permutations among the identical copies are indistinguishable, so the total is divided by .[40][41] The derivation can be understood sequentially: first choose positions out of for the first type (), then out of the remaining for the second type (), and so on, yielding This confirms the multinomial coefficient counts the distinct linear arrangements.[41] For example, consider the multiset with for and for . The number of distinct permutations is , namely , , and . Similarly, for the multiset corresponding to the letters in "PEPPER" (, , ), there are distinct arrangements. Another common example is the word "STATISTICS", which has 10 letters with S appearing 3 times, T appearing 3 times, I appearing 2 times, A once, and C once. The number of distinct permutations is therefore .[41] In combinatorics, permutations of multisets are fundamental for counting distinct objects under symmetry, such as the number of distinct words formed from a given letter multiset or the arrangements of indistinguishable particles in statistical mechanics. These counts also appear in applications like distributing indistinguishable items into distinct bins or enumerating molecular configurations where identical atoms reduce the distinct isomers.[41]Circular Permutations
Circular permutations refer to arrangements of objects in a circle where rotations of the entire arrangement are considered identical, distinguishing them from linear arrangements by accounting for this rotational symmetry. To count such permutations, one typically fixes the position of a single object to eliminate the redundancy introduced by the n possible rotations, thereby reducing the problem to arranging the remaining n-1 objects in a line relative to the fixed one.[42] For n distinct objects, the number of circular permutations is given by the formula (n-1)!. This arises from the total number of linear permutations, n!, divided by n to account for the rotational equivalences, yielding n!/n = (n-1)!.[43] For example, arranging 5 distinct people around a circular table results in (5-1)! = 24 distinct arrangements, as fixing one person's position allows the remaining 4 to be seated in 4! ways.[42] Unlike linear permutations, where all n! arrangements are unique, circular permutations treat rotated versions as the same but do not consider reflections (such as flipping the arrangement) as equivalent unless specified by additional symmetries like the dihedral group. This focus on rotations alone makes circular permutations suitable for scenarios like seating arrangements where directionality (clockwise vs. counterclockwise) is preserved but starting point is irrelevant.[43]Permutations with Repetition
Permutations with repetition, also known as arrangements with replacement, refer to the ordered selections of elements from a set of distinct objects where repetition of elements is permitted.[44] These can be conceptualized as the number of functions from a set of size (the positions) to a set of size (the objects), which are not required to be injective.[45] Equivalently, they correspond to the number of words of length that can be formed from an alphabet of letters, allowing any letter to appear multiple times.[44] The total number of such permutations is given by the formula , since there are choices for each of the positions, and the choices are independent.[45] This follows from the product rule in combinatorics, where the count multiplies the options at each step without restriction from prior selections.[44] For example, consider objects labeled and , and positions. The possible arrangements are , , , and , totaling .[45] In contrast to -permutations without repetition, which require distinct elements and yield arrangements (ensuring bijectivity onto the selected subset), permutations with repetition allow duplicates, resulting in more possible outcomes but non-bijective mappings.[45] These permutations find practical applications in scenarios involving codes and identifiers where repetition enhances variety without depleting options. For instance, the number of possible 4-digit PIN codes using digits 0-9 (with repetition allowed) is .[46] Similarly, license plates often employ this principle; a format with 3 letters (A-Z, repeatable) followed by 3 digits (0-9, repeatable) allows unique plates.[47]Combinatorial Aspects
Ascents, Descents, and Inversions
In the context of permutations viewed as sequences, an ascent occurs at position in a permutation if , while a descent occurs if .[48] A run is a maximal consecutive subsequence of the permutation that is strictly increasing, so the number of runs in equals one more than the number of descents.[49] An inversion in a permutation is a pair of positions with and ; the inversion number is the total count of such pairs, providing a measure of the permutation's disorder and relating to the complexity of sorting algorithms like bubble sort, where each adjacent swap reduces inversions by one.[50] The average number of inversions over all permutations in the symmetric group is , equivalent to half the maximum possible inversions .[50] The generating function for the number of permutations by inversions is .[50] For example, the permutation has a descent at position 1 since , an ascent at position 2 since , and one inversion from the pair where . The parity of the inversion number determines the sign of the permutation: .[51]Foata's Transition Lemma
Foata's transition lemma establishes a bijection between the set of all permutations in the symmetric group and the set of permutations obtained by reading the canonical cycle decompositions of the original permutations in a specific order. This bijection, denoted , maps a permutation to such that the number of cycles in equals the number of left-to-right maxima in . A left-to-right maximum in a permutation is a position where for all . The lemma facilitates enumerative comparisons between cycle structures and linear features like records, which relate to ascent and descent patterns in permutations.[52] The map is constructed explicitly from the cycle decomposition of . First, write in its disjoint cycle decomposition. For each cycle, rotate it so that the largest element appears first, followed by the subsequent elements in the cycle order (e.g., for cycle with , the rotated cycle is ). Then, sort the rotated cycles in increasing order of their leading (largest) elements. Finally, concatenate these sorted, rotated cycles to form the one-line notation of . This process "transitions" the cycle structure into a linear arrangement where the leading elements of the cycles become the left-to-right maxima. The reverse map starts from a one-line notation , identifies its left-to-right maxima, and forms cycles by taking each segment from one maximum to the next (excluding the following maximum), prepending the maximum to that segment to create the cycle.[53][54] The bijection is involutive, meaning , which immediately implies it is a bijection since applying the forward and reverse steps recovers the original permutation. This involution property ensures that the distribution of the number of cycles over matches the distribution of the number of left-to-right maxima, a key tool in enumerative combinatorics. While the standard form equates cycle count to left-to-right maxima, variants preserve additional statistics such as the inversion number by adjusting the rotation direction (e.g., using minimal elements instead of maximal).[55][56] For example, consider the permutation in one-line notation for , which corresponds to the cycle . The maximal element is 3, so rotate to . With only one cycle, . This image has one left-to-right maximum (at position 1, value 3). Applying the reverse to 312: the left-to-right maxima are at position 1 (3), and the remaining segment is 1 2, so the cycle is (3 1 2), recovering . Another example is the identity permutation , with cycles ; each rotated to start with its max (itself), sorted increasingly: (1)(2)(3), , which has three left-to-right maxima (1,2,3), matching the three cycles.[53] This lemma was introduced by Dominique Foata in the 1960s as part of his work on algebraic and probabilistic aspects of permutations, and it has become a fundamental tool in enumerative combinatorics for transferring statistics between cycle and linear representations.[57]Generating Functions and Enumeration
Generating functions provide a powerful framework for enumerating permutations and their refinements by combinatorial statistics, such as cycle structures and inversions. The exponential generating function (EGF) for the total number of permutations in the symmetric group is given by , which counts all labeled bijections on elements.[58] This reflects the species of permutations as sets of disjoint cycles, where the EGF aligns with the structure of linear orderings on labeled sets.[59] Refinements of this EGF incorporate statistics like the number of inversions, leading to q-analogs that deform the classical count. The Mahonian numbers count the permutations in with exactly inversions, and their generating function for fixed is the q-factorial .[60] The corresponding q-analog of the EGF is then \sum_{n=0}^\infty _q! \frac{x^n}{n!}, which specializes to at and tracks inversions across all .[61] These q-analogs have connections to quantum groups, where classical enumeration at recovers permutation representations in the limit.[62] For restricted classes of permutations, ordinary generating functions often arise naturally. A prominent example is derangements, permutations with no fixed points, enumerated by the subfactorial , which approximates for large .[63] This formula derives from the inclusion-exclusion principle: let be the set of permutations fixing , then the number of derangements is , yielding the series after evaluating the intersections as for fixed points.[63] The exponential generating function for derangements is .[64] Enumeration by cycle type employs the cycle index polynomial of , defined as , where is the number of -cycles in .[65] This polynomial encodes the distribution of cycle lengths and serves as the EGF for permutations labeled by cycle type when substituting variables appropriately, such as .[59] For instance, setting all recovers the basic EGF .[59]Applications
In Group Theory
In group theory, permutations of a finite set of elements form the symmetric group , which consists of all bijections from the set to itself under composition. This group is generated by the set of all transpositions, the permutations that swap two elements and fix the rest.[66] More specifically, is generated by the adjacent transpositions for to , and it admits a Coxeter presentation , where the correspond to these adjacent transpositions.[67] The alternating group is the kernel of the sign homomorphism , which maps even permutations to and odd permutations to , making the subgroup of all even permutations and a normal subgroup of index 2 in .[68] For , is simple, meaning it has no nontrivial normal subgroups.[68] Permutation groups act on sets by relabeling elements: for a group acting on a set with , each permutes the elements of via . The orbit-stabilizer theorem relates the size of an orbit to the stabilizer by , providing a tool to compute subgroup indices and orbit sizes in permutation actions.[69] The natural permutation representation of arises from its faithful action on , embedding into the general linear group via permutation matrices—monomial matrices with exactly one nonzero entry per row and column, all equal to 1. This yields an isomorphism S_n \cong \{P \in M_n(\mathbb{R}) \mid P \text{ is a [permutation matrix](/page/Permutation_matrix)}\} under matrix multiplication, preserving the group operation.[70] \begin{equation} S_n \cong \left{ P \in M_n(\mathbb{R}) ;\middle|; P \text{ permutation matrix} \right} \end{equation} In representation theory, the permutation representation decomposes into the trivial representation and the standard representation, with characters of irreducible representations constant on conjugacy classes of , which are parameterized by cycle types (partitions of ); these classes label the irreducibles via Young diagrams. Conjugacy classes thus play a central role in character tables for .[71] Recent developments in computational group theory leverage permutation representations of for algorithmic purposes, such as the Schreier-Sims algorithm, which constructs a base and strong generating set for a permutation group given generators, enabling efficient order computation and membership testing for subgroups of . Post-2000 refinements, including randomized variants and optimizations for large-degree groups, have extended its practicality in software like GAP and Magma.[72]In Computing
In computing, permutations are fundamental to algorithms for enumeration, randomization, and optimization. A key operation is ranking and unranking permutations in lexicographic order, which maps a permutation to its unique index (rank) from 0 to n!-1 and vice versa. This is efficiently achieved using the factorial number system (factoradic), where the rank of a permutation σ is computed as the sum over i from 1 to n of (the number of remaining elements smaller than σ(i)) multiplied by (n-i)!. Unranking reverses this process by selecting elements based on factoradic digits to construct the permutation. These O(n^2) time algorithms, with optimizations reaching O(n), enable compact storage and generation of specific permutations without enumerating all. Permutation generation algorithms produce successive permutations efficiently. Heap's algorithm, introduced in 1963, generates all n! permutations of n elements by performing a minimal number of swaps—specifically, O(1) changes per permutation on average—through recursive swaps of the last element with others in a controlled order. It minimizes data movement compared to naive methods, making it suitable for applications requiring iterative permutation exploration. Recursive backtracking, another common approach, builds permutations incrementally by trying assignments and pruning invalid branches, though it may involve more overhead for full enumeration. For random permutations, the Knuth shuffle (also known as the Fisher-Yates shuffle) produces a uniformly random permutation in O(n time by iteratively swapping each position i with a random position from i to n-1. This ensures every permutation is equally likely, avoiding biases in naive randomization. It is widely implemented in libraries for tasks like data shuffling in simulations. Permutations underpin several applications in computing. In sorting, permutation networks—such as Batcher's odd-even mergesort network—use fixed comparator stages to realize any permutation, enabling parallel sorting in O(log^2 n) depth on hardware like systolic arrays. In cryptography, S-boxes function as bijective permutations (e.g., 8-bit to 8-bit mappings in DES) to introduce nonlinearity and diffusion, resisting linear cryptanalysis. In constraint satisfaction problems, permutations model assignment tasks like scheduling, where global constraints ensure bijectivity; solvers like artificial ant colony optimization efficiently navigate the permutation space.[73][74] Generating all permutations of the symmetric group S_n requires Ω(n!) time due to the output size, but practical algorithms like Heap's achieve O(n) time per permutation amortized, making full enumeration feasible only for small n (e.g., n ≤ 12 on standard hardware). Recent 2020s advances leverage GPUs for parallel generation in specialized contexts, such as permutation testing in genome-wide association studies, achieving speedups of 10-100x over CPU methods by distributing independent permutation computations across thousands of cores. A representative example is thestd::next_permutation function in C++, which transforms a range into the next lexicographic permutation in O(n) time by finding the longest non-increasing suffix, swapping the pivot with the smallest larger successor, and reversing the suffix. Its pseudocode is as follows:
bool next_permutation([iterator](/page/Iterator) first, [iterator](/page/Iterator) last) {
if (first == last) return false;
auto i = last;
if (--i == first) return false;
while (true) {
auto i1 = i;
if (*--i < *i1) {
auto j = last;
while (!(*i < *--j));
std::iter_swap(i, j);
std::reverse(i1, last);
return true;
}
if (i == first) {
std::reverse(first, last);
return false;
}
}
}
bool next_permutation([iterator](/page/Iterator) first, [iterator](/page/Iterator) last) {
if (first == last) return false;
auto i = last;
if (--i == first) return false;
while (true) {
auto i1 = i;
if (*--i < *i1) {
auto j = last;
while (!(*i < *--j));
std::iter_swap(i, j);
std::reverse(i1, last);
return true;
}
if (i == first) {
std::reverse(first, last);
return false;
}
}
}
In Probability and Statistics
In probability theory, a random permutation is drawn uniformly from the symmetric group , where each of the possible permutations has equal probability . This uniform distribution serves as the foundation for analyzing stochastic properties of permutations, such as cycle structures and fixed points. Under this model, the expected number of inversions—pairs with but —is , derived via linearity of expectation over indicator variables for each potential pair.[75][76] The number of fixed points in a random permutation, where , converges in distribution to a Poisson random variable with mean 1 as . Consequently, the probability of at least one fixed point approaches , while the probability of no fixed points—a derangement—tends to . This derangement limit arises from the inclusion-exclusion formula for the number of derangements, , normalized by .[76] Steins method further quantifies this approximation by bounding the total variation distance between the fixed-point distribution and Poisson(1) by , using exchangeable pairs generated by random transpositions.[76] Permutation tests leverage the uniform distribution over (or subsets thereof) for nonparametric hypothesis testing, generating the null distribution by reshuffling data or labels while preserving marginals. A seminal application is Fisher's exact test for 2×2 contingency tables, which computes the p-value by enumerating all permutations consistent with fixed row and column totals, assessing independence without parametric assumptions. This exact approach is particularly useful for small samples, where asymptotic approximations like the chi-squared test may fail.[77] The birthday problem generalizes collision probabilities using permutation counts: the probability of no shared birthdays among people over days is the number of injections from to , or , divided by , yielding the collision probability . For , this exceeds 0.5, highlighting unexpectedly high collision risks in uniform random assignments.[78] In modern machine learning, permutations enable feature importance assessment in ensemble methods like random forests. Permutation importance measures the degradation in model accuracy—typically via out-of-bag error—after randomly shuffling a single feature's values in the test set, isolating its marginal contribution while keeping others intact. This technique, developed to mitigate biases in impurity-based measures (e.g., overvaluing high-cardinality features), provides unbiased rankings and has been integrated into libraries like scikit-learn for interpretable predictions.[79]History
Early Contributions
Early ideas of permutations emerged in ancient civilizations through explorations of systematic arrangements in poetry, divination, and enumeration. In ancient India, around 200 BCE, the scholar Pingala authored the Chandaḥśāstra, a treatise on Sanskrit prosody that introduced the prastara method for listing all possible sequences of short (laghu) and long (guru) syllables in poetic meters. This approach effectively enumerated binary permutations, providing the first known recursive algorithms for counting ordered arrangements without distinguishing between combinations and permutations as separate concepts.[80] Similarly, the Chinese I Ching (Book of Changes), compiled around 1000 BCE with roots in earlier oracle bone inscriptions, generated 64 hexagrams by considering all distinct permutations of six binary lines—solid (yang) or broken (yin)—to represent cosmic patterns and divinatory outcomes. These hexagrams exemplified exhaustive enumeration of linear arrangements, influencing philosophical and probabilistic thought.[81] Medieval Islamic scholars built upon these foundations by applying ordered selections to number theory, inheritance laws, and geometric designs. Kamal al-Dīn al-Fārisī (1260–1319), a Persian mathematician, advanced combinatorial methods in his studies of amicable numbers and factorization, where he explored systematic arrangements of factors that implicitly involved permutations of numerical components.[82] His work on polygonal numbers and the binomial theorem further touched on ordered selections. Broader Islamic combinatorics, as seen in treatises on magic squares by scholars like al-Būnī (d. 1225), required arranging symbols in grids without row or column repetitions, foreshadowing permutation constraints in puzzle-solving. These efforts emphasized counting distinct configurations for religious and scientific purposes, often without explicit factorial notation.[83] In the Renaissance, European mathematicians engaged with permutations through linguistic and recreational puzzles. Niccolò Tartaglia (c. 1499–1557), in his encyclopedic General Trattato di Numeri et Misure (1556–1560), examined anagrams as rearrangements of letters, using them to illustrate the enumeration of distinct word forms and combinatorial possibilities in arithmetic contexts. This reflected a growing interest in ordered arrangements for cryptography and poetry. A prominent example highlighting these ideas is the 36 officers problem, posed by Leonhard Euler in 1782, which challenged solvers to arrange 36 officers from six regiments and six ranks into a 6×6 grid such that no rank or regiment repeats in any row or column—effectively seeking two orthogonal Latin squares. While formulated by Euler, the problem echoed earlier roots in Islamic magic square constructions and Chinese lo shu diagrams, underscoring the focus on non-repeating arrangements in pre-modern counting puzzles. These contributions laid informal groundwork for permutation theory, prioritizing practical enumeration over abstract bijections.[84][85]Formal Development in the 19th Century
In the late 18th century, Joseph-Louis Lagrange laid foundational groundwork for the algebraic study of permutations by examining the symmetries inherent in the roots of polynomial equations. In his 1770–1771 work Réflexions sur la résolution algébrique des équations, Lagrange analyzed how permutations of equation roots preserve the equation's form, introducing early notions of symmetry groups to explain the solvability of cubic and quartic equations by radicals. This approach shifted focus from ad hoc solutions to systematic permutations, anticipating group-theoretic structures without fully abstracting them.[86] Building on this, Paolo Ruffini advanced the theory in 1799 with his Teoria generale delle equazioni, where he attempted to prove the insolubility of the general quintic equation by radicals, employing permutations to classify transformations of roots and distinguishing even and odd permutations based on the number of transpositions. Ruffini's analysis highlighted the alternating group as a key subgroup, though his proof contained gaps and was initially overlooked. In the 1820s, Niels Henrik Abel provided a rigorous proof in his 1824 memoir Mémoire sur les équations algébriques, confirming the quintic's insolubility and solidifying the role of even and odd permutations in determining solvability; this parity distinction became central to understanding permutation groups.[87][88] Augustin-Louis Cauchy formalized permutations as abstract objects in 1815, in his Mémoire sur le nombre des valeurs qu'une fonction peut acquérir, defining them independently of specific equations and introducing cycle notation to represent permutations compactly, such as (1 2 3) for a 3-cycle. This notation facilitated the study of permutation composition and subgroups, establishing permutation groups as a distinct algebraic domain.[89][90] Concurrently in the 1830s, Évariste Galois integrated permutations into field theory through his 1831 memoir Mémoire sur les conditions de résolubilité des équations par radicaux, where he defined the symmetric group acting on roots and used conjugacy classes to characterize solvability by radicals, linking group structure directly to field extensions.[91] A pivotal milestone came in the 1850s with Arthur Cayley's work, particularly his 1854 paper On the theory of groups, as depending on the symbolic equation θ^n = 1, which generalized permutation groups into abstract groups generated by permutations, proving every finite group isomorphic to a permutation subgroup and broadening the scope beyond algebraic equations. This abstraction marked the transition to modern group theory.[92]References
- https://groupprops.subwiki.org/wiki/Foata_transformation