$ cnpm install permutation-rank
Ranks and unranks permutations. Based on the following paper:
W. Myrvold, F. Ruskey. (2000) "Ranking and Unranking Permutations in Linear Time". Information Processing Letters.
First install using npm:
npm install permutation-rank
Then you can use it like this:
var prank = require("permutation-rank")
var perm = [0,3,1,2]
var r = prank.rank(perm)
console.log("r = ", r)
var u = prank.unrank(perm.length, r)
console.log("u = ", u)
//Prints:
// r = 15
// u = [ 0, 3, 1, 2 ]
prank.rank(permutation)
Computes an integer representing the colexicographic rank of the permutation
permutation
is an array encoding some permutationReturns An integer representing the ranked encoding of the permutation
prank.unrank(length, rank[, result])
Computes a permutation from a rank order with the given length
length
is the length of the permuationrank
is the index of the permutationresult
is an optional argument which stores the result of the inversionReturns The permutation at the given rank
(c) 2013 Mikola Lysenko. MIT License
Copyright 2013 - present © cnpmjs.org