作业帮 > 数学 > 作业

选举方法是让150名同学排成一排,由第一名开始报数,报奇数的同学落选退出队列,报偶数的同学站在位置不动,然

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/15 07:08:00
选举方法是让150名同学排成一排,由第一名开始报数,报奇数的同学落选退出队列,报偶数的同学站在位置不动,然
选举方法是让159名同学排成一排,由第一名开始报数,报奇数的同学落选退出队列,报偶数的同学站在位置不动,然后再从头报数,如此继续下去,最后剩下的一名当选,小胖想去,他在第一次排队时应该站在队列的什么位置上才能被选中?
思路.
  159个人,79个在偶数位,80个在奇数位.
  奇数位除去,剩79人.
  这79人每人的序号都是当前的序号乘2.
  有39个偶数位,40个奇数位.
  除掉奇数位.这里的奇数位,都能被2整除,偶数位都能被4整除.
  那么现在剩下的就是4 8 12 16 20.156 39个数
  继续.19个“偶数”,20个“奇数”,除去.
  剩下8的倍数.8 16 24 32 40.152 19个数
  继续.9个,10个,除去.
  剩下16的倍数,16 32 48 64 80.144 9个
  继续.4,5,除去.
  剩32的倍数.
  32 64 96 128
  剩4个了.
  再除去1 3 位.
  剩64 128
  于是,答案128.
  这个问题其实想一想比较浅显的.
  奇数个数,第一次除去所有奇数,必然剩下奇数个偶数.
  剩下的偶数顺次填补奇数的位置,于是,偶数位的新位置就都是原先位置的二分之一位置.
  现在重复这个步骤,还是上述的原则,那么新的剩下的数还是第一次位置被降成二分之一的偶数.那么当前这次又降了二分之一的位置,合起来是四分之一了.
  想必楼主你也发现了,按照这个原则,每次删除奇数位,剩下的数的位置一定都会缩减二分之一,那么最终没被删的那个数的位置缩减了多少,显而易见,删除了n次,就缩减了二分之一的n次方.
  那么最后那个没删的数的位置是多少?不用想,肯定是第一位.
  那么 为了好理解 我们可以设x没被删.
  于是 x * (1/2)^n = 1
  解出来 x = 2^n
  现在问题变成了,159里有多少个2?这样说可能不够确切,通俗的讲就是 159能被二分多少次?
  答案一定是比159小,且离159最近的那个2的幂.于是 128出现了.楼主同样可以试试,159除以2 保留整数,一直除,一定是7次.
  答案是128.
  这是大脑想的 一边想一边敲进来了,个人认为应该是对的.
  如果楼主实在想验证又懒得手动,Hi我,我写个程序模拟一下.
  哎,我可能患强迫症了.写了个程序,验证了我的想法.
  模拟人脑一点一点划的话,程序比较麻烦,于是我就先删13579,删2 6 10,这样一直来.
  代码如下,C语言和C++混合代码,C++忘得差不多了,就这样吧.
  #include
  int main(void)
  {
  int a[200];
  for(int i=1 ; i
选举方法是让150名同学排成一排,由第一名开始报数,报奇数的同学落选退出队列,报偶数的同学站在位置不动,然 1.2010个同学站成一排报数,报到奇数的退出,偶数的留下,留下的同学位置不动重新报数, 1. 2010个同学站成一排报数,报到奇数的退出,偶数的留下,留下的同学位置不动重新报数,报到奇数的退出,偶数的留下,如 猫抓了300只老鼠,排成一排,报奇数的老鼠退出队伍准备被吃掉,报偶数的老鼠原地不动,重新报数如此连续下去,最后站在哪个位 某校1600名同学准备选一名代表在庆祝教师节大会上给老师鲜花,选举的办法是1600名同学排成一排,从第一名 五一班48名同学排成一排,按1至5报数.最后一名同学报数字几?班主任安排报1的同学扫地,报4的同学擦玻璃. 1994名同学从左往右按编号从1~1994排成一排,然后从左到右1.2报数,凡报2的同学留下,其余离开,留下的同学 在操场上.一百名同学站成一排.一字二报数.凡报二的同学重新站成一排.再按一至二报数.报二的同学在重新站成一排.照这种规律 100名同学站成一排.1至2报数,凡报2的同学重新站成一排,再按1至2报数,报2的同学再重新站成一排,照这种 定律运作, 100名同学站成一排.1至2报数,凡报2的同学重新站成一排,再按1至2报数,报2的同学再重新站成一排,照这种 学校准备从五年级150名同学中挑选一名同学给来校作报告的劳动模范献花.所用的方法是:让150名同学排成一排,从左往右开始 求一道数奥题有29人排成一排,编号1~29,从1号开始,1至2报数,报二的不动,报一的退出,留下的1至2报数,这样不断重