Given an integer n, return a matrix whose columns enumerate various permutations of 1:n.
n
1:n
Function perms() returns all permutations in lexicographic order; function plainperms() returns all permutations by repeatedly exchanging adjacent pairs.
perms()
plainperms()
perms(n) plainperms(n)
Integer argument; permutations of 1:n returned
D. E. Knuth 2004. “The art of computer programming, pre-fascicle 2B. A draft of section 7.2.1.2: Generating all permutations”. http://www-cs-faculty.stanford.edu/~knuth/taocp.html
parts
# NOT RUN { 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)) # }
Run the code above in your browser using DataLab