Let me explain the idea.
Assume that indices start from 0.
Take N = 6 and K = 3
So initial arrangement looks something like
0->1->2->3->4->5->0.... like a circle.
After round 1 , '2' is eliminated .
here (k) denotes the person is killed
Since we ought to start from the last position we killed, so lets look at the updated indices.
Old Index |
and so on....
looking closely we can easily see after each round
OldPosition = (newPosition+k)mod N
Where N is the number of people left before the round started.
New Position signifies
f(N-1,K) as one person has already been killed.
So putting it back to
OldPostion = (newPostion+k) mod N
f(N,K) = ( f(N-1,K)+ K ) mod N
But this is done only if u have indices starting from 0. If u want to rearrange for indices starting from 1, you can rearrange it to get the above result.
I found a beautiful paper on this
Hope this helps :)