笔试遇到一个约瑟夫环 (人们站在一个等待被处决的圈子里。 计数从圆圈中的指定点开始,并沿指定方向围绕圆圈进行。 在跳过指定数量的人之后,处刑下一个人。 对剩下的人重复该过程,从下一个人开始,朝同一方向跳过相同数量的人,直到只剩下一个人,并被释放) 的变体:
给定人数和报数后要求输出依次出列的人的初始编号.
我用python数列模拟了整个报数过程, 但是算法超时,只AC了40%. (不知道用c++链表能不能100%AC.)
约瑟夫环原题是求最后幸存者的初始编号, 有递推公式
不知有没有类似的数学分析方法可以求出每轮出列的编号呀
全部评论
(0) 回帖