Skip to content

Instantly share code, notes, and snippets.

@H2CO3
Created April 5, 2014 19:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save H2CO3/9996703 to your computer and use it in GitHub Desktop.
Save H2CO3/9996703 to your computer and use it in GitHub Desktop.
function rrot(a, begin, k) {
var n = k - 1;
var tmp = a[begin + n];
for var i = n; i > 0; i-- {
a[begin + i % k] = a[begin + (i - 1) % k];
}
a[begin] = tmp;
}
function toFact(n, ndigs) {
var r = {};
for var i = 2; i < ndigs + 2; i++ {
r[sizeof r] = n % i;
n /= i;
}
return r;
}
function toPerm(n, arr) {
var digits = toFact(n, sizeof arr - 1);
for var j = 0, i = sizeof digits - 1; i >= 0; i-- {
var idx = digits[i];
rrot(arr, j++, idx + 1);
}
return arr;
}
var a = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
toPerm(999999, a);
for var i = 0; i < sizeof a; i++ {
printf("%d", a[i]);
}
print();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment