约瑟夫环数学递推公式及其证明
对于约瑟夫问题,今天看到了一篇好帖子,是用数学方法处理的,感觉还不错的无论是用链表实现还是用数组实现都有一个共同点:要模拟整个游戏过程,不仅程序写起来比较烦,而且时间复杂 度高达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)的 情况 ---- 这显然就是一个倒推问题!
约瑟夫环数学递推公式及其证明相关推荐
- UVA1363 LA3521 POJ2800 ZOJ2646 Joseph‘s Problem【约瑟夫环+数学】
Joseph's Problem Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7906 Accepted: 2107 Desc ...
- UVA1394 LA3882 POJ3517 And Then There Was One【约瑟夫环+数学】
And Then There Was One Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 5973 Accepted: 326 ...
- UVA11351 Last Man Standing【约瑟夫环+数学】
There are n people standing in a circle waiting to be executed. Starting from the first man, k−1 peo ...
- UVA 1394 And Then There Was One 约瑟夫环数学方法
题意: n个人围成环,首先第m个人出列,然后从下一个开始,数到第k个就出列...问最后剩下的是谁? 为了方便,我们采用0~n-1的编号方式 先考虑当题意没有m的时候,就是说从第一个人开始,第k个人出列 ...
- 约瑟夫环问题 —— 算法
约瑟夫环问题 前言 约瑟夫环问题一 约瑟夫环问题二 约瑟夫环问题三 约瑟夫环问题四 约瑟夫环问题五 约瑟夫环问题六 约瑟夫环问题七 约瑟夫环问题解决一 -- 模拟队列 约瑟夫环问题解决二 -- 环形链 ...
- 力扣1823题:找出游戏获胜者(约瑟夫环)
本题刚开始我还在用数组去模拟删除,结果发现队列更简单: import java.util.ArrayDeque; import java.util.Queue; import java.util.Sc ...
- 约瑟夫环的数学优化方法
首先,约瑟夫环的数学优化方法为: 为了讨论方便,先把问题稍微改变一下,并不影响原意:问题描述:n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数.求胜利者的编号 ...
- 约瑟夫环递推公式的由来(约瑟夫环公式法)
约瑟夫问题 约瑟夫问题是个著名的问题:N个人围成一圈,第一个人从1开始报数,报M的将被杀掉,下一个人接着从1开始报.如此反复,最后剩下一个,求最后的胜利者. 例如只有三个人,把他们叫做A.B.C,他们 ...
- 求约瑟夫环问题最后胜利者的一般解法以及数学推导方法
问题描述: 约瑟夫环问题(Josephus) 用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出.写出C程序. 解法一: 思路:建立一个有N个元素的循环链表,然后从链表表头遍 ...
最新文章
- ui设计师要懂哪些B端设计原则?
- 快速排序算法实现思想个人理解
- python中类的嵌套_python类的嵌套
- burpsuite 实战指南
- springboot项目在idea中的热部署的几种方式
- 先锋展示了可爱鸟形车载机器
- 机器学习基础:分类vs回归
- 【阿里妈妈营销科学系列】第一篇:消费者资产分析
- H5常用拖放事件解析
- struts2_HelloWorld
- 人工智能的未来是否真的会成为工人的乌托邦?
- mac mysql 5.7.12修改密码_Mac下 Mysql5.7忘记root密码及mysql5.7修改root密码的方法
- 【STM32单片机】推箱子游戏设计
- 歌咏比赛java代码_JavaEE基础知识
- Hexo-Theme-Buer主题修改介绍
- 韩顺平Linux视频教程—笔记(全)
- GNU的C++代码书写规范
- 人工智能领域期刊和顶会(中国计算机学会推荐国际学术期刊-2019)
- 降噪表现越级的真无线耳机,音质也很悦耳,哈氪拾光Pro体验
- 没有足够权限卸载某软件,并且gpedit.msc本地组策略编辑器找不到 的解决方法
热门文章
- mysql主键和唯一键的区别
- 产品经理如何提升团队的执行力
- 【软件安装】Win11安装SolidWorks2018 跳过注册机error6报错
- 公私密钥对的应用-十六字真言
- 暗黑3补钉2.4前瞻:套装与物品更新-暗黑损坏神3专区-新浪游戏
- Python字符串的表示方法
- [原创内容] 自己编写的Windows7SP1Update离线更新安装汇总-完全开源2.0版[2016.08.26]
- iOS 字符串截取、iOS 字符串替换、iOS 字符串分隔、iOS 字符串匹配、截取字符串、匹配字符串、分隔字符串
- 批量下载oppo云中相册源文件
- 剑网3一直连接不上服务器,win7系统剑网3连不上服务器的解决方法