15
3
There is a well-known bijection between the permutations of n elements and the numbers 0 to n!-1 such that the lexicographic ordering of the permutations and the corresponding numbers is the same. For example, with n=3:
0 <-> (0, 1, 2)
1 <-> (0, 2, 1)
2 <-> (1, 0, 2)
3 <-> (1, 2, 0)
4 <-> (2, 0, 1)
5 <-> (2, 1, 0)
It is also well-known that the permutations of n elements form a group (the symmetric group of order n!) - so, in particular, that one permutation of n elements applied to a second permutation of n elements yields a permutation of n elements.
For example, (1, 0, 2) applied to (a, b, c) yields (b, a, c), so (1, 0, 2) applied to (2, 1, 0) yields (1, 2, 0).
Write a program which takes three integer arguments: n, p1, and p2; interprets p1 and p2 as permutations of n elements; applies the first to the second; and outputs the corresponding integer. For example:
$ ./perm.sh 3 2 5
3
Good job. I took a peek at the documentation for
A.
yesterday, but was too tired to try and assemble in the correct order for the question O:-) – J B – 2011-03-11T08:21:17.263@JB: I was wondering why there was no JB+J here ... :) – Eelvex – 2011-03-11T08:31:26.317