首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用python从三个角度解决josephus问题的方法

0 写在前面 josephus问题是数据结构教材中的一个常见实例,其问题可以描述为: 设nnn个人围坐一圈,现在要求从第kkk个人开始报数,报到第mmm个的人退出。...找到第kkk个人开始 运行 从kkk的位置开始数到mmm,中间遇到000的就跳过 数到mmm之后,将其值改为000 然后继续循环,总共循环nnn次(因为每次循环就会退出一个人) 代码如下: def josephus_A...代码实现如下: def josephus_L(n, k, m): people = list(range(1, (n+1))) i=k-1 for num in range(n,0,-1):..._rear: break p=p.next class LinkedListUnderflow(ValueError): # 自定义异常 pass class Josephus..._rear.next 到此这篇关于使用python从三个角度解决josephus问题的方法的文章就介绍到这了,更多相关python josephus问题内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持

57820
您找到你想要的搜索结果了吗?
是的
没有找到

JS数据结构第三篇---双向链表和循环链表之约瑟夫问题

三、循环链表的应用---约瑟夫问题模拟 据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到...然而Josephus 和他的朋友并不想遵从。首先从一个人开始,越过k-2个人(因为第一个人已经被越过),并杀掉第k个人。接着,再越过k-1个人,并杀掉第k个人。...Josephus要他的朋友先假装遵从,他将朋友与自己安排在第16个与第31个位置,于是逃过了这场死亡游戏。 这里我做了一个效果图,模拟下约瑟夫问题: ? 接下来我们如何用链表来模拟约瑟夫问题。...然而Josephus 和他的朋友并不想遵从。 首先从一个人开始,越过k-2个人(因为第一个人已经被越过),并杀掉第k个人。 接着,再越过k-1个人,并杀掉第k个人。...Josephus要他的朋友先假装遵从,他将朋友与自己安排在第16个与第31个位置,于是逃过了这场死亡游戏。

71020
领券