A permutation is an ordered arrangement of objects. For example, 3124 is
one possible permutation of the digits 1, 2, 3 and 4. If all of the permutations
are listed numerically or alphabetically, we call it lexicographic order.
The lexicographic permutations of 0, 1 and 2 are:
012 021 102 120 201 210
What is the millionth lexicographic permutation of the digits 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9?
I used Narayana Pandita's algorithm to generate successive lexicographic
permutations of my number set. I ran the algorithm 1,000,000 times to
arrive at the answer. I made helper functions for each step of the algorithm.
Narayana Pandita's algorithm:
- Find the largest index such that . If no such index exists, the permutation is the last permutation.
- Find the largest index greater than such that .
- Swap the value of with that of .
- Reverse the sequence from up to and including the final element .
102,280