约瑟夫环问题-python代码
问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时我们把编号从0~n-1,最后 结果+1即为原问题的解。
分析:假设有10人,报数为3的出列。这里我启用一个环链表来实现,从第一个结点开始,让每一个结点报数,这个结点报数为3,则从链表中移出,最后剩下的就是我们的答案。
代码如下:
class node():def __init__(self, value, next=None):self.value = valueself.next = nextdef creat1(n):if n < 0:return 0if n == 1:return node(1)else:root = node(1)tem = rootfor i in range(2, n + 1):tem.next = node(i)tem = tem.nexttem.next = rootreturn rootdef main(n, k):if k == 1:return nroot = creat1(n)tem = rootwhile True:for i in range(k - 2):tem = tem.nexttem.next = tem.next.nexttem = tem.nextif tem.next == tem:breakprint(tem.value)if __name__ == '__main__':main(10, 3)
如果代码有错,欢迎留言指正。
约瑟夫环问题-python代码相关推荐
- python约瑟夫环问题给十个学生编号报到3者出列_趣味算法--约瑟夫环问题(示例代码)...
问题描述 已知n个人(以编号1,2,3,...,n分别表示)围坐在一张圆桌上.指定编号为k的人开始从1报数,数到m的那个人出列:出列那个人的下一位又从1开始报数,数到m的那个人出列:以此规则重复下去, ...
- 约瑟夫环问题python解法_约瑟夫环问题python解法 | 学步园
约瑟夫环问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到k的那个人被杀掉:他的下一个人又从1开始报数,数到k的那个人又被杀掉:依此规律重复下去,直到 ...
- 约瑟夫环问题python解法_约瑟夫环问题python解法
约瑟夫环问题:已知n个人(以编号1,2,3-n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到k的那个人被杀掉:他的下一个人又从1开始报数,数到k的那个人又被杀掉:依此规律重复下去,直到圆桌 ...
- 约瑟夫环问题 - Python
基本问题描述: 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为1的人开始报数,数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又出列:依此规律重复下去,直到圆 ...
- 【循环链表】约瑟夫环问题——Python
背景:故事源自著名犹太历史学家Josephus,在罗马人占领乔塔帕特后,39个犹太人与Josephus以及他的朋友躲进了一个山洞中,39个犹太人决定宁死不屈,于是决定了一个自杀方式,41个人排成一个圈 ...
- 算法-约瑟夫环问题——python实现
Hello NanFeng 遇到了一个有点意思的题: 一艘船上有30个人,现在因为超载需要15人下船,决策者采用了一种很特殊的抽签方式 1.先让人们排成一列,按照顺序给每个人编号 2.依次从1开始报数 ...
- 约瑟夫环问题——python
https://blog.csdn.net/qq_43497702/article/details/88047489
- 约瑟夫环c语言代码顺序存储,顺序表实现约瑟夫环地问题,C语言.doc
顺序表实现约瑟夫环地问题,C语言 计算机科学与工程学院 PAGE PAGE 2 <算法与数据结构>试验报告 计算机科学与工程学院 <算法与数据结构>试验报告[一] 专业班级 1 ...
- 杀人游戏约瑟夫环(洛谷P1145题题解,Java语言描述)
题目要求 题目链接P1145 约瑟夫环问题了解一下 约瑟夫环问题其实在数据结构里与单循环链表关系密切,但是这里模拟就完事~~ 我写过的约瑟夫环问题 AC代码(Java语言描述) import java ...
最新文章
- 零基础Python学习路线图,小白的进阶之路!
- C# 学习笔记(16)ComboBox下拉列表框宽度自适应
- wxWidgets的简介
- 计算机网络划分子网_电网小课堂|通信类:子网划分技术
- DataBinding 学习系列(2)详解DataBinding在xml中的使用
- Java集合-ArrayList源码解析-JDK1.8
- php的对象和数组应该学js,JavaScript数组与对象的常用方法及 json 的序列化
- php正弦函数图像,Go语言输出正弦函数(Sin)图像
- 水经注叠加cad_相见恨晚的50个CAD技巧
- 2017-11-20 白银解说
- 4月程序员工资统计出炉:平均14596元,南京程序员收入挤进一线。
- Julia Pro 1.0 下载安装教程
- 使用NetBeans进行J2ME开发(五):揭开游戏开发的神秘面纱
- 在移动硬盘里移动视频文件到移动硬盘 另外一个文件夹 显示正在计算_稳定可靠的数据之仓 柯达X200 SSD固态移动硬盘体验评测...
- 【问题记录】04 MyBatis报错:Parameter ‘XXX‘ not found. Available parameters are [page, hashMap, param1, param
- CF终于上紫了。。。
- 【ARC 自动引用计数 Objective-C语言】
- Chrome 出现“您未安装Flash Player播放器或者版本过低”问题
- 不想学python也不想写博客的第四天
- PHPChina学院jQuery Mobile与Phone
热门文章
- 各位单身狗的福音:表白爱心魔改版
- Win10安装TensorFlow出现过的问题汇总
- JDK源码分析---SortedMap
- 时序模型:长短期记忆网络(LSTM)
- Default encoder for format image2 (codec png) is probably disabled. Please choose an encoder manuall
- 标注工具:parselmouth(歌声合成语音合成标注)
- 【转载】Java重试机制
- 交友项目【手机号登录注册功能】实现
- NSSCTF---PNGPDF
- 使用 “Cubic” 制作自定义 “ubuntu” 系统镜像