The permutations package provides R-centric functionality for working with permutations of a finite set. It includes group-theoretic composition of permutations and can transform from word form to cycle form and back.

You can install the released version of permutations from CRAN with:

```
# install.packages("permutations") # uncomment this to use the package
library("permutations")
#>
#> Attaching package: 'permutations'
#> The following object is masked from 'package:stats':
#>
#> cycle
```

The package is maintained on github.

`permutations`

package in useRandom permutations on a finite set are given by the
`rperm()`

command:

```
rperm(10,9)
#> [1] (19524)(37) (1238794) (1745682)(39) (15)(3897)(46) (132654789)
#> [6] (17263)(59) (136)(47589) (162)(4795) (14763)(259) (168347925)
```

The result is printed in cycle form but we can print in word form if we wish:

```
options(print_word_as_cycle=FALSE) # override default
as.word(rperm(10,9,3))
#> {1} {2} {3} {4} {5} {6} {7} {8} {9}
#> [1] 7 . . . . . 9 . 1
#> [2] . 9 2 . . . . . 3
#> [3] . . . . . . . . .
#> [4] 3 . 1 . . . . . .
#> [5] . 8 . . 2 . . 5 .
#> [6] . . . 6 . 4 . . .
#> [7] . . . . . . . . .
#> [8] . . . 8 . . . 4 .
#> [9] 6 . 1 . . 3 . . .
#> [10] . . . 9 . . . . 4
options(print_word_as_cycle=TRUE) # usually want to print a cycle irregardless
```

(A dot indicates a fixed point). The package uses arithmetic
operations `*`

to combine permutations and `^`

for
conjugation:

```
<- as.word(c(4,2,3,1,5,7,6)))
(a #> [1] (14)(67)
<- as.cycle(1:4))
(b #> [1] (1234)
*b
a#> [1] (234)(67)
*a
b#> [1] (123)(67)
```

The *megaminx* is a dodecahedral puzzle with similar
construction to the Rubik cube puzzle that has 50 movable pieces and 132
coloured stickers (``facets’’). The permutations package includes
functionality to simulate the megaminx and exhibits an 82-turn
superflip. The vignette gives an extended discussion.