约瑟夫环问题
Posted 我是codel
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了约瑟夫环问题相关的知识,希望对你有一定的参考价值。
首先让我们引入一个公式:f(n,k)=(f(n-1,k)+k)%n
约瑟夫环 这篇文章讲得很好。。
我稍微谈谈自己的看法。
这其实就是一个递推的过程: 首先f(n, k)表示的是n个人,数到k的人退出游戏;然后这个公式 f(n-1,k)=f(n,k)-k>=0?f(n,k)-k:f(n,k)-k+n; 表示的是退出一个人之后(n个人变成了n-1个人),n-1个人的时候第i个人相对于n个人的时候的位置变化;这个公式再左右变换一下就得到了开头的公式了!最后得到的结果是幸存者的下标(并不是幸存者的编号.将下标带入到编号数组中就可以得到编号了)!
递推过程:n=1的时候,当然幸存者的下标就是x=0;然后递推 x=(x+k)%n (n表示的是当前人数n,k表示数到k)...
以上是关于约瑟夫环问题的主要内容,如果未能解决你的问题,请参考以下文章