2003个人排队,单数出队,双数不动,后面依次这样,问最后一位原先是2003中的多少名?

来源:百度知道 编辑:UC知道 时间:2024/07/07 20:19:12

2003太多对不对?我们从简单情形考虑起.
假设共有1人,那么第1人就是最后一个.
共有2人,那么第2人就是最后一个.
共有3人, 2 (以下就简写了)
4 4
5 4
6 4
7 4
8 8
.... ....
看到第二列数的规律没?1个1,2个2,4个4,8个8............
等比数列问题,公比2,首项是1.前N项和=(2的N次方)-1 N是整数.
我们换一种写法.

1
2 2
4 4 4 4
8 8 8 8 8 8 8 8
..................
我们的下一步任务是判断此三角数从上往下看第2003个在哪一行即可
设在第N行,前N行数个数和是2的N次方-1
2的10次方1024,11次2048,所以估计结果是在第11行.
第11行的数都是2的10次方1024.
综上,最后一个是原来的第1024名.

考虑二进制表达,如果单数出队双数不动的话,那么也就是说二进制最后一位是0的不动,其余排除。然后按原位排的话就相当于剩下的数都除以2,也就是说舍去二进制的最后一位。这样循环下去,最后一位一定是有10....0这样的形式的,而且同样形式的0最多的那个数,也就是说是那个范围中二的最大幂次。
在这个例子中从1到2003二的最大幂次是1024,所以最后一位原先是1024名。

1024