Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static int[] perm(int n, int k)
- {
- int i, ind, m=k;
- int[] permuted = new int[n];
- int[] elems = new int[n];
- for(i=0;i<n;i++) elems[i]=i;
- for(i=0;i<n;i++)
- {
- ind=m%(n-i);
- m=m/(n-i);
- permuted[i]=elems[ind];
- elems[ind]=elems[n-i-1];
- }
- return permuted;
- }
- public static int inv(int[] perm)
- {
- int i, k=0, m=1;
- int n=perm.length;
- int[] pos = new int[n];
- int[] elems = new int[n];
- for(i=0;i<n;i++) {pos[i]=i; elems[i]=i;}
- for(i=0;i<n-1;i++)
- {
- k+=m*pos[perm[i]];
- m=m*(n-i);
- pos[elems[n-i-1]]=pos[perm[i]];
- elems[pos[perm[i]]]=elems[n-i-1];
- }
- return k;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement