Localizar permuta i em javascript
Dada uma matrizarr
de tamanhon
, e índice0<i<n!
Eu quero retornar a i-ésima permutação.
Consegui escrever um método que obtém todas as permutações:
function permute (arr) {
var permutations = [];
if (arr.length === 1) {
return [ arr ];
}
for (var i = 0; i < arr.length; i++) {
var subPerms = permute(arr.slice(0, i).concat(arr.slice(i + 1)));
for (var j = 0; j < subPerms.length; j++) {
subPerms[j].unshift(arr[i]);
permutations.push(subPerms[j]);
}
}
return permutations;
}
Como faço para apará-lo para obter apenas um ramo da recursão?