12.2.3 Decomposing a permuation into a product of disjoint cycles
Any permutation can be decomposed as a sequence of cycles which have
no elements in common. For example, the permutation [1,3,4,0,2] can
be written as a combination of the cycles [0,1,3] and [2,4].
The permu2cycles command
decomposes a permutation into a combination of cycles.
-
permu2cycles takes
p, a permutation.
- permu2cycles(p) returns the decomposition of p as a product of
disjoint cycles. A cycle is represented by a list, a cyclic decomposition is
represented by a list of lists.
Examples
permu2cycles([1,3,4,5,2,0]) |
|
| ⎡
⎣ | ⎡
⎣ | 0,1,3,5 | ⎤
⎦ | , | ⎡
⎣ | 2,4 | ⎤
⎦ | ⎤
⎦ |
| | | | | | | | | | |
|
In the answer the cycles of size 1 are omitted, except if n−1 is a
fixed point of the permutation (this is required to find the value of
n from the cycle decomposition).
permu2cycles([0,1,2,4,3,5]) |
permu2cycles([0,1,2,3,5,4]) |