约瑟夫环

只愿长相守 提交于 2019-12-02 04:50:43

约瑟夫问题

约瑟夫问题是个著名的问题:N个人围成一圈,第一个人从1开始报数,报M的将被杀掉,下一个人接着从1开始报。如此反复,最后剩下一个,求最后的胜利者。

 

解题方法

考虑用链表进行删除,时间复杂度为O(NM),显然是不优秀的

这里考虑用递推公式进行求解

递推公式

$F(N,M)=((N-1,M)+M)%N$

证明

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!