perms {partitions} | R Documentation |
Enumerate the permutations of a vector
Description
Given an integer n
, return a matrix whose columns enumerate various
permutations of 1:n
.
Function perms()
returns all permutations in lexicographic
order; function plainperms()
returns all permutations by
repeatedly exchanging adjacent pairs.
Usage
perms(n)
plainperms(n)
Arguments
n |
Integer argument; permutations of |
Note
Comments in the C
code; algorithm lifted from
‘fasc2b.pdf’.
Author(s)
D. E. Knuth; C
and R transliteration by Robin K. S. Hankin
References
D. E. Knuth 2004. “The art of computer programming, pre-fascicle 2B. A draft of section 7.2.1.2: Generating all permutations”.
https://www-cs-faculty.stanford.edu/~knuth/taocp.html
See Also
Examples
perms(4)
summary(perms(5))
# Knuth's Figure 18:
matplot(t(apply(plainperms(4),2,order)),
type='l', lty=1, lwd=5, asp=1,
frame=FALSE, axes=FALSE, ylab="", col=gray((1:5)/5))
[Package partitions version 1.10-7 Index]