Josephus Problem

  【约瑟夫问题】

  n(n>=3且∈N*)个人围成一圈,从某一个人开始报数,第m(m∈N*)个人退出圈,剩下的人继续报数,求最后一个退出圈的人。

  [解答]

  将n个人的编号设为0, 1, ..., n-1,从0开始报数0,报m-1的人退出圈。所求者编号f[n]。

  第一个退出圈的人为(m-1)%n,剩下n-1个人重新编号,f[n]=(f[n-1]+m%n)%n=(f[n-1]+m)%n。

  f[1]=0。

  故f[n]=(f[n-1]+m)%n(其中f[1]=0)。

posted @ 2011-03-11 17:58  zxfx100  阅读(195)  评论(0编辑  收藏  举报