Josephu (约瑟夫,约瑟夫环) 问题Josephu问题为:设编号为1,2,3,。。。n的n个人围坐一圈,设定编号为k (1<=k<=n) 的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,以此类推,直到所有人出列为止,由此产生一个出队编号的序列。提示:用一个不带头节点的循环链表来处理约瑟夫问题:先构成一个有n个节点的单循环链表,然后由k节点起从
百度原始约瑟夫问题为:据说著名犹太历史学家Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的朋友并不想遵从。首先从一个人开始
参考:约瑟夫环问题的三种解法讲解 - 力扣(LeetCode) (leetcode-cn.com)、找出游戏的获胜者 - 找出游戏的获胜者 - 力扣(LeetCode) (leetcode-cn.com)约瑟夫环——公式法(递推公式)_陈浅墨的博客-CSDN博客_约瑟夫环数学公式 问题约瑟夫环问题是算法中相当经典的一个问题,其问题理解是相当容易的,并且问题描述有非常多的版本。什么是约瑟夫
转载
2023-07-19 07:01:31
99阅读
故事:约瑟夫问题(Josephus Problem)据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的朋
转载
2023-05-29 22:41:00
136阅读
**约瑟夫环问题**约瑟夫环(约瑟夫问题,又作杀人游戏问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时我们把编号从0~n-1,最后 [1] 结果+1即为原问题的解。问题来源:瑟夫环(Josephus)问
转载
2023-07-19 07:06:30
188阅读
Java之约瑟夫环前言一、约瑟夫环1、故事2、例题3、题解A、List模拟删除B、动态规划+递归C、动态规划+循环总结参考文献 前言通过学习Java约瑟夫环问题,理解大问题拆解成小问题,然后小问题之间递推求解,这也是动态规划的核心思想。一、约瑟夫环1、故事约瑟夫斯是1世纪的一名犹太历史学家。他在自己的日记中写道,他和他的40个战友被罗马军队包围在洞中。他们讨论是自杀还是被俘,最终决定自杀,并以抽
文章目录前言一、问题描述二、解决思路三、过程图解四、时间复杂度五、代码实现1.测试代码2.代码分析总结 前言约瑟夫问题是数据结构中的经典算法题,这里使用java中的单向环形链表解决该问题。一、问题描述n个人围成一圈,每个人分别标注为1、2、…、n,要求从1号从1开始报数,报到m的人出圈,接着下一个人又从1开始报数,如此循环,直到剩余人数为0,输出出队序列。例如当n=25,m=12时,出队序列为1
转载
2023-09-02 06:41:42
367阅读
目录1.约瑟夫问题的提出:2.约瑟夫环的图解:3.约瑟夫的提示: 4.试将2个数据形成链表(图解)具体思路:(当插入的是两个值的时候) 5.具体的图解: 6.具体的代码实现1.约瑟夫问题的提出:设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类
问题来历:据说著名犹太历史学家Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的朋友并不想遵从。首先从一个人开始,越过k-2
约瑟夫环问题就是n个人围成一圈,然后循环报数,每次喊道k的人出列;递归实现:例:10个人,0~9号围成一圈,k为3;递归的数据为,m个人,说k的出列当前在第几个人,intfun(int m,intk,int I){ if(i==1) return(m+k-1)%m;//意思...
转载
2016-05-23 18:24:00
78阅读
2评论
为了讨论方便,先把问题稍微改变一下,并不影响原意:问题描述: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 --> 0k+1 --> 1k+2 --> 2......k-2 --> n-2k-1 --> n-1变换后就完完全全成为了(n-1)个人报数的
转载
2013-10-28 16:31:00
113阅读
2评论
历史这个问题是以弗拉维奥.约瑟夫斯命名的,它是1世纪的一名犹太历史学家。他在自己的日记中写道,他和他的40个战友被罗马军队包围在洞中。他们讨论是自杀还是被俘,最终决定自杀,并以抽签的方式决定谁杀掉谁。约瑟夫斯和另一个人是最后两个留下的人。约瑟夫斯说服那个人,他们向罗马军队投降,不再自杀。约瑟夫斯把他的存活归因于运气或天意,他不知道是哪一个约瑟夫环问题 N个人围成一圈顺序编号,从1号开始按1、2、3......顺序报数,报p者退出圈外,其余的人再从1、2、3开始报数,报p的人再退出圈外,以此类推。 请按退出顺序输出每个退出人的原序号算法思想这里介绍3种算法,两种直观,一种运用数学循环链表...
转载
2013-05-14 20:46:00
116阅读
2评论
约瑟夫环问题的原来描述为,设有编号为1,2,……,n的n(n>0)个人围成一个圈,从第1个人开始报数,报到m时停止报数,报m的人出圈,再从他的下一个人起重新报数,报到m时停止报数,报m的出圈,……,如此下去,直到所有人全部出圈为止。当任意给定n和m后,设计算法求n个人出圈的次序。稍微简化一下。 ...
转载
2015-07-09 00:12:00
168阅读
2评论
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人開始报数,数到m的那个人出列;他的下一个人又从1開始报数,数到m的那个人又出列;依此规律反复下去,直到圆桌周围的人所有出列。C代码例如以下(joseph.cpp):#include#incl...
转载
2015-01-19 10:34:00
110阅读
约瑟夫环历史
约瑟夫环问题(Joseph Ring)是以弗拉维奥·约瑟夫命名的,它是1世纪的一名犹太历史学家。
他在自己的日记中写道,他和他的40个战友被罗马军队包围在洞中,最终决定自杀,并以抽签的方式决定谁杀掉谁。约瑟夫斯和另外一个人是最后两个留下的人。约瑟夫斯说服了那个人向罗马军队投降,不再自杀。约瑟夫斯把他的存活归因于运气或天意。
问题描述
原创
2021-12-03 09:26:01
389阅读
最近做比赛遇到了所谓的约瑟夫环问题;
原创
2022-07-29 17:04:56
94阅读
以前写的程序,今天在整理文件的时候发现了,贴出来有需要的朋友可以参考!问题提出:约瑟夫环是一归
原创
2022-08-01 12:53:24
78阅读
package four;/*2. 约瑟夫环问题(两道题)2.1:我们班上50个人组成一个大圈,先是1-7报数,数字是5号的同学出来,重复凑够10个人然后剩下40个人1-11报数,数字是9号的同学出来, 重复凑够10个人,选出的20个人组成一个小圈,1-13报数,把11挑出来,重复凑够 5 个人,这五个人就是被选出出去找食物的人,他们回来不了了, 没被选中的 15 人重新回到大圈里....
原创
2022-10-28 10:00:37
28阅读
一 . 约瑟夫环问题描述 约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时我们把编号从0~n-1,最后结果+1即为原问题的解二 . 约瑟夫环基本步骤 (1
原创
2023-01-06 15:29:15
50阅读
题目:http://acm.hdu.edu.cn/showproblem.php是
原创
2023-05-31 23:07:30
82阅读