第十九届中国东南地区数学奥林匹克 高二年级 第一天第三题
今有n个人排成一个横队,从左到右按1,2,···,n 报数,凡报奇数者退出队伍,剩下的人再从右向左按1,2,···.重新报数,凡报奇数者退出队伍,然后剩下的人又从左到右重新报数,如此往返进行,使得最后队伍中只剩下一人。 f(n) 表示最后剩下的这个人在第一次报数时的号码。求f(n)的表达式,并给出f(2022) 的值。
f(n)=不大于n的最大的2的整数次幂。
先证明:任何一次操作后,如果队伍里人数>=2,那么队伍里的前两人的初始号码肯定为 2x, 2x+1的形式。
易知队伍里的第一个人在这次操作后肯定会退出队伍。令某一次操作后,队伍里的前两人初始的号码为A、B,则在上一次操作时,A前边、A B中间都去掉了一个人。上上次操作A前边、A B中间都去掉了两个人。继续推演可以发现每次操作A前边、A B中间都去掉的人数是相同的,就这样一直操作,直到初始时的n个人。所以B=2A。因为在第一次操作后A=2=21 所以得证。
所以如果进行了x次操作,那么在每次操作后,队伍里第一个人的编号分别为 2、 22 、23 、24 ··· 2x 令不大于n的最大的2的整数次幂为2C,即2C+1>n,2C<=n,所以至少可以进行C次操作(因为如果队伍里有2C人,那么可以进行C次操作,所以大于2C人可以进行操作的次数肯定>=C次)。所以第C次操作后,队伍里第一个人的编号为2C,假如队伍里人数多于1个,那么第二个人编号为2C+1>n,这是不可能的,所以队伍里只有一个人,编号为2C。所以 f(n) 就是2C
----------------------
更新:题目看错了,把 剩下的人再从右向左 看成 剩下的人再从左向右了。所以解答也错了,懒得改了