Python Josephus(约瑟夫问题)算法
约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。
代码:
// s是Python中下标值,可更改为从第s个下标值报数
// n为总人数,counts为指定报数字值
def Josephus(s, n, counts):count = 0; ind = s-1;arr = list(range(1,n+1)); ls = list()while any(arr):count+=1;ind+=1if count == counts: count = 0; ls.append(arr.pop(ind)); ind-=1if ind == len(arr)-1:ind = -1;if count == counts:count = 0; ls.append(arr.pop(ind))return ls
测试结果:
print(Josephus(s=0, n=8, counts=4))
// 输出为第i个人,1<=i<=n
[4, 8, 5, 2, 1, 3, 7, 6]
Python Josephus(约瑟夫问题)算法相关推荐
- Java实现Josephus约瑟夫环问题的算法
Java实现Josephus约瑟夫环问题的算法 前言 语言:Java 环境:IntelliJ IDEA JDK版本:1.8 源码:GitHub 问题概述 N个人围成一圈,规定报数为M,第一个人从1开始 ...
- python中约瑟夫环程序_Python实现约瑟夫环问题的方法
本文实例讲述了Python实现约瑟夫环问题的方法.分享给大家供大家参考,具体如下: 题目:0,1,...,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的 ...
- python解决约瑟夫问题_Python实现约瑟夫环问题的方法
本文实例讲述了Python实现约瑟夫环问题的方法.分享给大家供大家参考,具体如下: 题目:0,1,...,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的 ...
- java实现约瑟夫环完整算法_Java简单实现约瑟夫环算法示例
Java简单实现约瑟夫环算法示例 发布时间:2020-10-01 14:19:56 来源:脚本之家 阅读:104 作者:perfect亮 本文实例讲述了Java简单实现约瑟夫环算法.分享给大家供大家参 ...
- 约瑟夫环算法(JAVA)
约瑟夫环算法(JAVA) 简介:约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3-n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列:他的下一个人又从1 ...
- Python版约瑟夫生者死者游戏
Python版约瑟夫生者死者游戏(课设.小实验) 题目简介 算法思路(1循环,3判断) 流程图 参考代码(Python3,使用VS_Code编写) 题目简介 约瑟夫游戏的大意是:有30个旅客同乘一条船 ...
- c语言循环链表约瑟夫问题的时间复杂度,用单向循环链表解决约瑟夫问题算法优劣性分析.doc...
用单向循环链表解决约瑟夫问题算法优劣性分析 用单向循环链表解决约瑟夫问题算法优劣性分析 摘要: 首先由简单问题引入约瑟夫问题,然后用单向循环链表解决约瑟夫问题,最后对模拟方法及数学方法的优劣性进行分析 ...
- Python版本的数据结构书_《用Python解决数据结构与算法问题》
源于经典 数据结构作为计算机从业人员的必备基础,Java, c 之类的语言有很多这方面的书籍,Python 相对较少, 其中比较著名的一本 problem-solving-with-algorithm ...
- python实现洗牌算法_洗牌算法及 random 中 shuffle 方法和 sample 方法浅析
对于算法书买了一本又一本却没一本读完超过 10%,Leetcode 刷题从来没坚持超过 3 天的我来说,算法能力真的是渣渣.但是,今天决定写一篇跟算法有关的文章.起因是读了吴师兄的文章 <扫雷与 ...
最新文章
- Mysql—(1)—
- 深度:语音技术革命正在改变人类的交流方式
- [其他]JAVA与C#的Socket通信
- QML 性能优化建议(二)
- Linux下tar命令简介
- 复习.net/c#时的小文章之万年草稿版 (全是基础概念,请懂的人绕行)
- php购物车(session)
- 会员体系架构的设计思路
- ubuntu系统DD对拷还原报废笔记本
- 五一惠州双月湾游,海滩,帐篷,野营,烧烤、篝火晚会
- list的交集,差集,并集
- HW RIPv2认证
- webpack5学习与实战-(八)-配置打包后的文件名
- Mujoco-二阶单摆建模与控制
- Proteus仿真:使用8255输出连续方波
- Windows用户名中文修改英文无感实现操作方法
- webservice和jms的区别
- ROC、PR曲线、AUC值
- Linux系统存储之LVM
- Chromium for mac(谷歌浏览器)V89.0.4336.0官方最新版