
Permutation Index
The mission is an idea of przemyslaw.daniel .
Let’s imagine a list of all the permutations of a given set. Every item on the list has it’s index (starting from 1). The task is to calculate the permutation index.
You are given a tuple of integers. It represents one of the permutations of the consecutive integers (starting from 0). You have to return the permutation index of the tuple.
For example
- Input: (1, 2, 0)
- All the consecutive permutations are:
- (0, 1, 2)
- (0, 2, 1)
- (1, 0, 2)
- (1, 2, 0) !!!
- (2, 0, 1)
- (2, 1, 0)
- Output: 4
Example:
assert permutation_index((2, 0, 1)) == 5 assert permutation_index((2, 1, 3, 0, 4, 5)) == 271
Input: One of the permutations of the consecutive integers (a tuple of integers).
Output: The permutation index (an integer).
Precondition:
- sorted(input) == list(range(len(input)))