欢迎光临有100个人站成一列,从1起往下报数,报奇数的人出列,留下的人再重复报数,这样继续下去,最后只留下一个人.请问:这个人在第一次报数时报的数是多少?我不想用一个一个的排的方法,因为题目是要在很短时间内给出答案,肯定有简单的妙的方法!请不吝赐教!64我知道,只是用什么方法的问题!
问题描述:
欢迎光临
有100个人站成一列,从1起往下报数,报奇数的人出列,留下的人再重复报数,这样继续下去,最后只留下一个人.请问:这个人在第一次报数时报的数是多少?
我不想用一个一个的排的方法,因为题目是要在很短时间内给出答案,肯定有简单的妙的方法!请不吝赐教!64我知道,只是用什么方法的问题!
答
64.
因为我们发现它的规律是每次保留是偶数的号码,那么也就是说这个数所包含的2越多,留下的几率越大,因为偶数=2n,所以我们这要找出在一百以内2^n最大值正整数值即为最后留下的人。我们知道2^6=64100,因此这个人的号码应该是64。
答
64
答
64
第一次,剩下:
2,4,6,8.
相当于2*(1,2,3,4,...)
再次报,剩下:4*(1,2,3,4,.)
以此类推:
8*(1,2,3...)
16×(1,2,3,4,5,6)
32*(1,2,3)
64
答
64
就是2的最大次幂
这个是最简单的Joseph问题
详情可以查阅Knuth等人的《具体数学》