约瑟夫环问题

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)...

以上是关于约瑟夫环问题的主要内容,如果未能解决你的问题,请参考以下文章

1139 约瑟夫环问题

约瑟夫环

自杀环——约瑟夫环

python类约瑟夫环原创问题求解 求大神

算法:约瑟夫环问题

约瑟夫环