故事:
约瑟夫问题(Josephus Problem)据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39
个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。
然而Josephus
和他的朋友并不想遵从,Josephus要他的朋友先假装遵从,他将朋友与自己安排在第16个与第31个位置,于是逃过了这场死亡游戏。
原题:
用户输入M,N值,N个人围成一个环,从0号人开始数,数到M,那个人就退出游戏,直到最后一个人
求最后一个剩下的人是几号?
(约瑟夫环问题 Josephus)
首先是比较容易看得懂的。。
def solve(n,m):
#自动身成列表,从0开始 到n-1
list=range(n)
m-=1
k=m%n;
while(len(list) >1):
del list[k]
k= (k+m) % len(list)
return list[0]
说实话,感觉还是因为python的数据结构强大,list del掉自动补位,其他语言估计要费力些
分享到:
相关推荐
用LabVIEW编写的解约瑟夫环问题的程序。可以自己设置参数和变量。
解约瑟夫问题(及求解规律)(Python实现)
多瑟夫环问题单向循环链表 在计算机科学中,多瑟夫环问题是一种经典的问题,描述的是一个编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码。该问题的解决可以使用单向循环链表来实现。下面是多瑟夫...
约瑟夫问题:编号为1,2,3,……,n的n个人按顺时针方向围坐一圈。任选两个正整数作为报数下限s和报数上限m,从第一个人开始按顺时针方向自s开始顺序报数,报到m时停止报数。报m的人出列,从他在顺时针方向上的下一...
瑟夫环问题(Sieve of Eratosthenes),是一种古老而有效的算法,用于寻找小于给定数的所有质数。这个算法是由古希腊数学家埃拉托斯特尼提出,因此得名。在C++编程中,我们可以利用STL(Standard Template Library)...
数据结构的课设,瑟夫环,通过简单的输入设置,来设定开始位置,报数大小,从而不断将报到的人移除
瑟夫环问题的c++实现,希望能解决这一难题,对大家有所帮助
不使用链表解决约瑟夫问题
[问题描述] 编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将...
5. **输出结果**:在报数过程中,记录下出列的顺序,最后按顺序打印出列的编号,即为解约瑟夫环问题的结果。 在实现这个算法时,我们需要以下几个关键操作: - **InitList**: 初始化链表,创建一个空的循环链表。 ...
根据提供的标题、描述以及部分文档内容,我们可以了解到这是关于瑟夫芯片(Sirf3)模块原理的介绍。在市面上较为少见的信息中,这份文档提供了有关Sirf3芯片的关键设计细节和技术参数。接下来,我们将深入探讨这份...
【安瑟夫矩阵】,又称为产品市场扩张矩阵,是由伊戈尔·安索夫提出的一种企业增长策略框架,主要用于帮助企业识别和选择实现销售与利润增长的策略。这个矩阵主要包含四种密集型增长策略:市场渗透、市场开发、产品...
约瑟夫环(Josephus Problem)是一个经典的理论问题,源于罗马历史学家约瑟夫斯的一段叙述。在原始问题中,人们站成一个圈,并按照某种顺序依次淘汰,直到只剩下一个人才停止。在这个改进的问题中,我们引入了好人与...
通过本篇文章的介绍,我们了解了约瑟夫环问题的背景、单项链表的概念及其在C语言中的实现方式,并且详细分析了如何利用单项链表来解决约瑟夫环问题。这种方法不仅简洁高效,而且易于理解和实现,是学习数据结构和...
5. **未来网络技术**:如IPv6的引入,以解决IPv4地址耗尽的问题,以及量子通信和边缘计算等新兴技术。 6. **网络编程**:学习如何利用TCP/IP进行网络编程,创建自己的服务器和客户端应用。 如果您能提供更具体的...
n个人围成一个圈 每隔3个人杀一个人 问最后剩下的人的编号 工具用ArrayList 每一次遍历整个队列 计算出总共被杀的人的所有位置 将计算出的位置的所有值设为0;然后将值为零的一次性删除 arrayList remove 0 ;...
8. **递归与分治**:如快速幂运算、归并排序、分治法解约瑟夫问题等。 9. **贪心算法**:适用于部分最优解的问题,如霍夫曼编码、活动安排等。 10. **回溯法与剪枝**:用于解决约束满足问题,如八皇后问题、N皇后...
1
"塞瑟夫"这个标题可能是指的Josephus问题,这是一个著名的理论计算机科学问题,与JavaScript编程语言有关。在Josephus问题中,人们站成一个圈,并按照某种顺序每k个人被淘汰,直到只剩最后一个人为止。这个问题是...