Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function nth_perm(set, nth) {
- var tab=set.slice(), i=0, fs=[], f=1, p=1;
- while(p<tab.length){
- f *= p;
- fs.push(f);
- p++;
- }
- while(nth>0){
- var x = Math.floor(nth/fs[tab.length-2-i]);
- var j = x-1+i;
- while( j>=i ){
- var tmp=tab[j];
- tab[j]=tab[j+1];
- tab[j+1]=tmp;
- j--;
- }
- nth-=fs[tab.length-2-i]*x;
- i++;
- }
- return tab;
- }
Advertisement
Add Comment
Please, Sign In to add comment