如果最后剩余的一批元素正好是M个,那么自然是最后一个报M,留下。
但如果最后一批剩下的元素数量小于M个,我的想法是为了公平起见,让他们绕圈报数,直到有人报M,此人留下,其余的淘汰。你的规则是在到达最后一轮之前,那个报M的直接留下,其他的就被淘汰。这在现在这个N=80,M=3的情形下,也算合理,但是,如果M比较大的时候,就可能会出现不公平的现象。
例如,N=1000,M=7的时候:
×××××××××××××××××××××××××××××××
按我的想法,让他们从987开始,绕圈报数,直到595报7,留下,其余淘汰。所以,最终留下的是595。
×××××××××××××××××××××××
不知道你对这个怎么看?