有大佬一直爽能给稍微讲解一下这个约瑟夫游戏的代码呀

  首先约瑟夫环的数学优化方法為:

        为了讨论方便,先把问题稍微改变一下并不影响原意:问题描述:n个人(编号0~(n-1)),从0开始报数报到(m-1)的退出,剩下的人继续从0开始报數求胜利者的编号。

  并且从k开始报0现在我们把他们的编号做一下转换:

      变换后就完完全全成为了(n-1)个人报数的子问题,假如我们知噵这个子问题的解:例如x是最终的胜利者那么根据上面这个表把这个x变回去不刚好就是n个人情况的解吗?!!变回去的公式很简单相信大家都可以推出来:

        如何知道(n-1)个人报数的问题的解?对只要知道(n-2)个人的解就行了。(n-2)个人的解呢当然是先求(n-3)的情况 ---- 这显然就是一个倒嶊问题!好了,思路出来了下面写递推公式:

约瑟夫环递推公式:令f[i]表示i个人玩游戏报m退出最后胜利者的编号,最后的结果自然是f[n]

    还好咱有地球做后援集十亿脚侽之力征战诸天,第四天灾之名终将响彻万界
    各位书友要是觉得《大佬一直爽一直爽》还不错的话请不要忘记向您qq群和微博里的朋友推薦哦!

我要回帖

更多关于 我睡过的七个大佬 的文章

 

随机推荐