约瑟夫环的历史

约瑟夫斯问题是由古罗马历史学家约瑟夫斯提出的,他参与并记录了公元66年至70年犹太人反抗罗马的起义。作为一名将军,约瑟夫设法控制了裘达的伯特城47天。城市沦陷后,他和40名死忠士兵在附近的山洞里避难。在那里,叛军投票决定“投降或死亡”。于是约瑟夫建议大家轮流杀旁边的人,这个顺序是抽签决定的。约瑟夫有预谋地抓住了最后一批,作为洞穴中的两个幸存者之一,他说服了最初的受害者一起向罗马投降。

约瑟夫环问题的具体描述是:有n (n >: 0)个个体组成一个圆,从第1个人开始报数,报数到M时停止报数,从下一个人开始报数,报数到M时停止报数,报数到M时报数,以此类推,直到所有人都出圆。在任意给定n和m的情况下,设计了一个算法,求n个人出圈的顺序。