问题:已知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代码相关推荐

  1. python约瑟夫环问题给十个学生编号报到3者出列_趣味算法--约瑟夫环问题(示例代码)...

    问题描述 已知n个人(以编号1,2,3,...,n分别表示)围坐在一张圆桌上.指定编号为k的人开始从1报数,数到m的那个人出列:出列那个人的下一位又从1开始报数,数到m的那个人出列:以此规则重复下去, ...

  2. 约瑟夫环问题python解法_约瑟夫环问题python解法 | 学步园

    约瑟夫环问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到k的那个人被杀掉:他的下一个人又从1开始报数,数到k的那个人又被杀掉:依此规律重复下去,直到 ...

  3. 约瑟夫环问题python解法_约瑟夫环问题python解法

    约瑟夫环问题:已知n个人(以编号1,2,3-n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到k的那个人被杀掉:他的下一个人又从1开始报数,数到k的那个人又被杀掉:依此规律重复下去,直到圆桌 ...

  4. 约瑟夫环问题 - Python

    基本问题描述: 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为1的人开始报数,数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又出列:依此规律重复下去,直到圆 ...

  5. 【循环链表】约瑟夫环问题——Python

    背景:故事源自著名犹太历史学家Josephus,在罗马人占领乔塔帕特后,39个犹太人与Josephus以及他的朋友躲进了一个山洞中,39个犹太人决定宁死不屈,于是决定了一个自杀方式,41个人排成一个圈 ...

  6. 算法-约瑟夫环问题——python实现

    Hello NanFeng 遇到了一个有点意思的题: 一艘船上有30个人,现在因为超载需要15人下船,决策者采用了一种很特殊的抽签方式 1.先让人们排成一列,按照顺序给每个人编号 2.依次从1开始报数 ...

  7. 约瑟夫环问题——python

    https://blog.csdn.net/qq_43497702/article/details/88047489

  8. 约瑟夫环c语言代码顺序存储,顺序表实现约瑟夫环地问题,C语言.doc

    顺序表实现约瑟夫环地问题,C语言 计算机科学与工程学院 PAGE PAGE 2 <算法与数据结构>试验报告 计算机科学与工程学院 <算法与数据结构>试验报告[一] 专业班级 1 ...

  9. 杀人游戏约瑟夫环(洛谷P1145题题解,Java语言描述)

    题目要求 题目链接P1145 约瑟夫环问题了解一下 约瑟夫环问题其实在数据结构里与单循环链表关系密切,但是这里模拟就完事~~ 我写过的约瑟夫环问题 AC代码(Java语言描述) import java ...

最新文章

  1. 零基础Python学习路线图,小白的进阶之路!
  2. C# 学习笔记(16)ComboBox下拉列表框宽度自适应
  3. wxWidgets的简介
  4. 计算机网络划分子网_电网小课堂|通信类:子网划分技术
  5. DataBinding 学习系列(2)详解DataBinding在xml中的使用
  6. Java集合-ArrayList源码解析-JDK1.8
  7. php的对象和数组应该学js,JavaScript数组与对象的常用方法及 json 的序列化
  8. php正弦函数图像,Go语言输出正弦函数(Sin)图像
  9. 水经注叠加cad_相见恨晚的50个CAD技巧
  10. 2017-11-20 白银解说
  11. 4月程序员工资统计出炉:平均14596元,南京程序员收入挤进一线。
  12. Julia Pro 1.0 下载安装教程
  13. 使用NetBeans进行J2ME开发(五):揭开游戏开发的神秘面纱
  14. 在移动硬盘里移动视频文件到移动硬盘 另外一个文件夹 显示正在计算_稳定可靠的数据之仓 柯达X200 SSD固态移动硬盘体验评测...
  15. 【问题记录】04 MyBatis报错:Parameter ‘XXX‘ not found. Available parameters are [page, hashMap, param1, param
  16. CF终于上紫了。。。
  17. 【ARC 自动引用计数 Objective-C语言】
  18. Chrome 出现“您未安装Flash Player播放器或者版本过低”问题
  19. 不想学python也不想写博客的第四天
  20. PHPChina学院jQuery Mobile与Phone

热门文章

  1. 各位单身狗的福音:表白爱心魔改版
  2. Win10安装TensorFlow出现过的问题汇总
  3. JDK源码分析---SortedMap
  4. 时序模型:长短期记忆网络(LSTM)
  5. Default encoder for format image2 (codec png) is probably disabled. Please choose an encoder manuall
  6. 标注工具:parselmouth(歌声合成语音合成标注)
  7. 【转载】Java重试机制
  8. 交友项目【手机号登录注册功能】实现
  9. NSSCTF---PNGPDF
  10. 使用 “Cubic” 制作自定义 “ubuntu” 系统镜像