Josephus permutation
From Wikipedia, the free encyclopedia
In computer science, the Josephus permutation is defined as follows:
Suppose n people are arranged in a circle and we are given a positive integer m. Beginning with an arbitrary first person, we proceed around the circle, removing every mth person. After the circle has once been "processed" in this way, counting continues among the remaining persons around the circle until everyone is removed. The order which is removed is the (m, n)-Josephus permutation.
For example, the (3,7)-Josephus permutation is {3,6,2,7,5,1,4}.
There are O(n log n) and O(n log m) time algorithms for generating Josephus permutations.
For the various variations it is possible to find a closed form, enabling the player of such a "game" to determine the position that will be the last one to be eliminated (since, according to tradition, the players eliminate one another, the player in the last position is the survivor). Quite a detailed description of such a solution can be found in Graham, Knuth and Patashnik, Concrete Mathematics, Addison-Wesley, 1989.
[edit] References
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms, Second Edition. MIT Press and McGraw-Hill, 2001. ISBN 0-262-03293-7. Chapter 14: Augmenting Data Structures, pp.318.