版权所有。所有权利保留。
欢迎转载,转载时请注明出处:
http://blog.csdn.net/xiaofei_it/article/details/16813349
本文是论述约瑟夫问题的第三部分,约瑟夫问题的描述在第一部分。请先阅读第一部分。
现在要求输出最后一个出列的人的编号。
第一次见到这个问题是在我高一的时候,那时候搞NOIP,培训的时候碰到了这个题目,当时没想到好的方法,就采用模拟法了。这么多年过去了,前一阵的一个晚上,又想到了这个题目,后来就躺床上想了想,于是就想到了一个比较好的解法。(这也就是我现在写这个系列的文章的原因。)
我在网上搜了一下,发现这个解法和网上的类似。但我还是用自己的语言叙述一下吧。
起初N个人,编号1到N。当数到C(为简单起见,这里假定C<N)的那个人出列后,剩下的人就是