对于约瑟夫问题,今天看到了一篇好帖子,是用数学方法处理的,感觉还不错的无论是用链表实现还是用数组实现都有一个共同点:要模拟整个游戏过程,不仅程序写起来比较烦,而且时间复杂
度高达O(nm),当n,m非常大(例如上百万,上千万)的时候,几乎是没有办法在短时间内出结果的。为了讨论方便,先把问题稍微改变一下,并不影响原意:问题描述:n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求胜利者的编号
。我们知道第一个人(编号一定是m%n-1) 出列之后,剩下的n-1个人组成了一个新的约瑟夫环(以编号为k=m%n的人开
始):k  k+1  k+2  ... n-2, n-1, 0, 1, 2, ... k-2
并且从k开始报0。现在我们把他们的编号做一下转换:
k     --> 0
k+1   --> 1
k+2   --> 2
...
...
k-2   --> n-2
k-1   --> n-1变换后就完完全全成为了(n-1)个人报数的子问题,假如我们知道这个子问题的解:例如x是最终的胜利者,那么根
据上面这个表把这个x变回去不刚好就是n个人情况的解吗?!!变回去的公式很简单,相信大家都可以推出来:x=(x+k)%n如何知道(n-1)个人报数的问题的解?对,只要知道(n-2)个人的解就行了。(n-2)个人的解呢?当然是先求(n-3)的
情况 ---- 这显然就是一个倒推问题!

约瑟夫环数学递推公式及其证明相关推荐

  1. UVA1363 LA3521 POJ2800 ZOJ2646 Joseph‘s Problem【约瑟夫环+数学】

    Joseph's Problem Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7906 Accepted: 2107 Desc ...

  2. UVA1394 LA3882 POJ3517 And Then There Was One【约瑟夫环+数学】

    And Then There Was One Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 5973 Accepted: 326 ...

  3. UVA11351 Last Man Standing【约瑟夫环+数学】

    There are n people standing in a circle waiting to be executed. Starting from the first man, k−1 peo ...

  4. UVA 1394 And Then There Was One 约瑟夫环数学方法

    题意: n个人围成环,首先第m个人出列,然后从下一个开始,数到第k个就出列...问最后剩下的是谁? 为了方便,我们采用0~n-1的编号方式 先考虑当题意没有m的时候,就是说从第一个人开始,第k个人出列 ...

  5. 约瑟夫环问题 —— 算法

    约瑟夫环问题 前言 约瑟夫环问题一 约瑟夫环问题二 约瑟夫环问题三 约瑟夫环问题四 约瑟夫环问题五 约瑟夫环问题六 约瑟夫环问题七 约瑟夫环问题解决一 -- 模拟队列 约瑟夫环问题解决二 -- 环形链 ...

  6. 力扣1823题:找出游戏获胜者(约瑟夫环)

    本题刚开始我还在用数组去模拟删除,结果发现队列更简单: import java.util.ArrayDeque; import java.util.Queue; import java.util.Sc ...

  7. 约瑟夫环的数学优化方法

    首先,约瑟夫环的数学优化方法为: 为了讨论方便,先把问题稍微改变一下,并不影响原意:问题描述:n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数.求胜利者的编号 ...

  8. 约瑟夫环递推公式的由来(约瑟夫环公式法)

    约瑟夫问题 约瑟夫问题是个著名的问题:N个人围成一圈,第一个人从1开始报数,报M的将被杀掉,下一个人接着从1开始报.如此反复,最后剩下一个,求最后的胜利者. 例如只有三个人,把他们叫做A.B.C,他们 ...

  9. 求约瑟夫环问题最后胜利者的一般解法以及数学推导方法

    问题描述: 约瑟夫环问题(Josephus) 用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出.写出C程序. 解法一: 思路:建立一个有N个元素的循环链表,然后从链表表头遍 ...

最新文章

  1. ui设计师要懂哪些B端设计原则?
  2. 快速排序算法实现思想个人理解
  3. python中类的嵌套_python类的嵌套
  4. burpsuite 实战指南
  5. springboot项目在idea中的热部署的几种方式
  6. 先锋展示了可爱鸟形车载机器
  7. 机器学习基础:分类vs回归
  8. 【阿里妈妈营销科学系列】第一篇:消费者资产分析
  9. H5常用拖放事件解析
  10. struts2_HelloWorld
  11. 人工智能的未来是否真的会成为工人的乌托邦?
  12. mac mysql 5.7.12修改密码_Mac下 Mysql5.7忘记root密码及mysql5.7修改root密码的方法
  13. 【STM32单片机】推箱子游戏设计
  14. 歌咏比赛java代码_JavaEE基础知识
  15. Hexo-Theme-Buer主题修改介绍
  16. 韩顺平Linux视频教程—笔记(全)
  17. GNU的C++代码书写规范
  18. 人工智能领域期刊和顶会(中国计算机学会推荐国际学术期刊-2019)
  19. 降噪表现越级的真无线耳机,音质也很悦耳,哈氪拾光Pro体验
  20. 没有足够权限卸载某软件,并且gpedit.msc本地组策略编辑器找不到 的解决方法

热门文章

  1. mysql主键和唯一键的区别
  2. 产品经理如何提升团队的执行力
  3. 【软件安装】Win11安装SolidWorks2018 跳过注册机error6报错
  4. 公私密钥对的应用-十六字真言
  5. 暗黑3补钉2.4前瞻:套装与物品更新-暗黑损坏神3专区-新浪游戏
  6. Python字符串的表示方法
  7. [原创内容] 自己编写的Windows7SP1Update离线更新安装汇总-完全开源2.0版[2016.08.26]
  8. iOS 字符串截取、iOS 字符串替换、iOS 字符串分隔、iOS 字符串匹配、截取字符串、匹配字符串、分隔字符串
  9. 批量下载oppo云中相册源文件
  10. 剑网3一直连接不上服务器,win7系统剑网3连不上服务器的解决方法