约瑟夫环问题
约瑟夫环问题(Josephus)
用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。当然求约瑟夫环问题的目的,无非是求最后一个人,即获胜者。
但是我们明白无论用链表还是数组都有一个共同点:要模拟整个过程,不仅程序写起来比较烦,而且时间复杂度高达O(nm)。 当n,m过大时,这个效率真的是太低了,必须需要优化。
数学化:编号为0~(n-1)的n个人,从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。
First一定是(m%n-1)
剩下的n-1个
原创
2021-04-13 19:34:25 ·
171 阅读 ·
0 评论