2012年5月7日

摘要: 问题描述:n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求最终胜利者的编号。问题解答:我们知道第一个人(编号一定是(m-1)%n) 出列之后,剩下的n-1个人组成了一个新的约瑟夫环(以编号为k=m%n的人开始): k k+1 k+2 ... n-2, n-1, 0, 1, 2,... k-2 并且从k开始报0。 现在我们把他们的编号做一下转换: k --> 0 k+1 --> 1 k+2 --> 2 ... ... k-3 --> n-3 k-2 --> n-2 变换后就完完全全成为了(n-1)个人报数的子问题,假如我 阅读全文
posted @ 2012-05-07 16:19 aho 阅读(276) 评论(0) 推荐(0) 编辑

导航