例如初始时的编号为:
1,2,3,4,5,……,98,99,100
经过第一轮之后,所有奇数编号的人被淘汰,即淘汰了1,3,5,7,……,99
剩下50个人重新编号:
1,2,3,4,5,……,48,49,50
继续第二轮、第三轮,直至剩下最后一个人,问这个幸存者的初始编号是多少

归纳法

〇初始: 1,2,3,4,5,……,98,99,100

第一轮淘汰:1 ,2,3 ,4,5 ,……,98,99 ,100
①第一轮过后剩余:2,4,6,8,10,……,96,98,100

第二轮淘汰:2 ,4,6 ,8,10 ,……,96,98 ,100(第二轮往后末尾幸存者的推断方法见下文)
②第二轮过后剩余:4,8,12,……,96,100

第三轮淘汰:4 ,8,12 ,16,……,96,100
③第三轮过后剩余:8,16,……,96

第四轮……

……

由此可以归纳得出,
在〇序列中,开头的数字是 1=201 = 2^01=20,并且两个相邻数字间的差也为1=201 = 2^01=20
在①序列中,开头的数字是 2=212 = 2^12=21,并且两个相邻数字间的差也为2=212 = 2^12=21
在②序列中,开头的数字是 4=224 = 2^24=22,并且两个相邻数字间的差也为4=224 = 2^24=22
……
我们要找的幸存者就是最后一轮中的开头的数字,这个数字也必定是2的次幂,所以幸存者的初始编号为26=642^6 = 6426=64,因为64是小于100的最大的2的次幂;
由此可以推断,若有N个人排队,则幸存者的初始编号为小于N的最大的2的次幂;

追问:倒数第二个幸存者是谁?最后一次淘汰时有2个人参加还是3个人参加?
我们知道最后的幸存者是64号,那么倒数第二轮的排列情况就是:32,64,96;由此可以回答追问问题;
这个追问的意义是,我们可以知道决赛是在哪几个人之间发生,当我们处在这个游戏中,而幸存者的编号已经被人霸占时,我们还可以去选择决赛圈的其它编号来获得次佳的成绩;

100个人排队,编号分别为1到100,每轮淘汰编号为奇数的人,然后重新编号,问最后剩下的人的初始编号是多少相关推荐

  1. 有n个人围成一圈,顺序排号,从第一个人开始报数(1-3报数),凡是报数为3的人退出圈子,问最后留下的人原来的编号是多少?

    有n个人围成一圈,顺序排号,从第一个人开始报数(1-3报数),凡是报数为3的人退出圈子,问最后留下的人原来的编号是多少? 花了半个下午搞出来的代码,调试了一会,一切正常,感觉还不错! '''解题思路: ...

  2. 1056: 约瑟夫问题【n人围成一圈,报数为3的人退出圈子,问最后留下的人原来的编号。】

    Description 有n人围成一圈,顺序排号.从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位. Input 初始人数n Output 最后一人的初始编号 ...

  3. 100个人围成一圈c语言,C语言 约瑟夫圈问题:N个人围成一圈,从第一个人开始按顺序报数并编号1,2,3,……N,然后开始从第一个人转圈报数,凡是报到3的退出圈子。则剩下的最后一个人编号是多少。...

    样例输入3  输出2 输入100   输出91 代码及分析: #include int main() { int i,n,N,out,a[1000]; out=i=n=0; //用out记录退出圈子的 ...

  4. cqupt题库 n个人围成一圈,顺序编号。从第一个人开始从1到m报数,凡报到m的人退出圈子,编程求解最后留下的人的初始编号。 程序运行示例: 6 3(两个输入数据之间有空格) 1

    n个人围成一圈,顺序编号.从第一个人开始从1到m报数,凡报到m的人退出圈子,编程求解最后留下的人的初始编号. 程序运行示例: 6 3(两个输入数据之间有空格) 1 输入格式:scanf("% ...

  5. 100块钱买100只鸡php,使用JS计算买100只鸡问题

    这篇文章主要介绍了JS计算输出100元钱买100只鸡问题的解决方法,简单描述了100元钱买100只鸡问题并结合实例形式分析了问题解决的思路与具体实现方法,需要的朋友可以参考下 本文实例讲述了JS计算输 ...

  6. c语言随机产生10个30 100,c语言编写随机产生10个100~200之间整数,幷按从大到小排序...

    你所写的代码是正确的,想要查看,请用这个:includeint main(){char ch;scanf("%c",&ch);if(ch>='A'&ch){c ...

  7. 枚举算法:概率计算。在标注编号分别为1,2,...,n的n张牌中抽取3张,试求抽出3张牌编号之和为素数的概率。输入整数n(3<n<=3000),输出对应的概率(四舍五入到小数点后第3位)。

    概率计算.在标注编号分别为1,2,-,n的n张牌中抽取3张,试求抽出3张牌编号之和为素数的概率.输入整数n(3<n<=3000),输出对应的概率(四舍五入到小数点后第3位). 思路: 组合 ...

  8. linux 脚本1加到100,shell脚本之从1加到100之和的思路

    一.使用双括号(())进行计算 #!/bin/bash # a=0 for((b=0;b<=100;b++));do ((a=a+b)) //也可以写成a=$((a+b)) done echo ...

  9. python练手经典100例-python零基础练手项目100+

    文章目录 Python3 100例 实例001:数字组合 实例002:"个税计算" 实例003:完全平方数 实例004:这天第几天 实例005:三数排序 实例006:斐波那契数列 ...

最新文章

  1. 两个ListBox中的项互相移动及上下移动
  2. 【iOS报错】“this class is not key value coding-compliant for the key userPhoneNum”给字典设置键值对的时候报错...
  3. ubuntu 下使用mysql
  4. 3_4 IteratorMode 迭代器模式
  5. java不使用除号实现除法运算_LeetCode29 Medium 不用除号实现快速除法
  6. [Swift]loadNibNamed方法
  7. CSS3特效 - 会呼吸的button按钮
  8. cpython和jpython_在J内部使用Python
  9. 前端学到什么程度可以找到工作?
  10. git21天打卡day19-新建远程仓库
  11. 原子操作--sync/atomic的用法
  12. swt中关于Text.setSelection()的记录
  13. 迅雷防踢补丁:一个刷流量木马的简单分析
  14. 贪吃蛇小游戏(基于Python)
  15. powershell和cmd区别
  16. 【菜鸟收藏:全方位掌握Excel的ROUNDUP函数设置】
  17. 大O、小o、大Ω、小ω、大Θ符号在算法中是什么意思?
  18. 各个领域中的经典论文,看看你都读过哪些 - 易智编译EaseEditing
  19. 远程桌面--外网访问内网多台电脑
  20. 泰坦尼克号生存预测(超详细)

热门文章

  1. 7 再也不去酒吧喝酒系列
  2. 知识图谱表示学习 TransE: Translating Embeddings for Modeling Multi-relational Data
  3. 苏大文正计算机基础成绩公布,2019苏大文正学院投档分数线公布:文科319分,理科325分...
  4. Word宋体小四变成宋体四号后行距变大了很多、无法缩小的解决办法
  5. Cookie&Session
  6. 【甄选靶场】Vulnhub百个项目渗透——项目五十二:Fowsniff-1(任务挟持)
  7. 【嵌入式AI周报20210430期】Xilinx推出K26视觉AI核心板、黑芝麻智能发布196TOPS华山A1000
  8. delphi 解析Json格式
  9. 【FTP工具类】提供FTP服务器的连接, 查找文件目录,及读取文件内容等操作
  10. R语言多项式线性模型:最大似然估计二次曲线