def KingElect(totalNum, startNum, intervalNum):'''猴子选大王totalNum:猴子总数tartNum:开始序号intervalNum:间隔数'''monkeyList = []out_order = 0  #出列计数current_index = 0 #报数序列monkeyId = startNum  # 初始编号for i in range(totalNum):# 生成初始队列# 例 KingElect(7, 2, 3)# range(7) : i = 0 -> 6# i=0 monkeyId = 2  monkeyList=[2]# i=1 monkeyId = 3  monkeyList=[2,3]# i=2 monkeyId = 4  monkeyList=[2,3,4]# i=3 monkeyId = 5  monkeyList=[2,3,4,5]# i=4 monkeyId = 6  monkeyList=[2,3,4,5,6]# i=5 monkeyId = 7  monkeyList=[2,3,4,5,6,7]# i=6 monkeyId = 8 8 = 7 +1 monkeyId = 1  monkeyList=[2,3,4,5,6,7,1]if monkeyId == totalNum + 1:monkeyId = 1monkeyList.append(monkeyId)monkeyId += 1# print(monkeyList,end='  ')while(len(monkeyList) > 1):out_order     += 1current_index += 1if(current_index > len(monkeyList)):current_index = 1if(out_order == intervalNum):out = monkeyList.pop(current_index-1)# print('%d  %d Out' % (out,out))out_order = 0# print(monkeyList,end='  ')current_index -= 1else:pass# print('%d-'%(monkeyList[current_index - 1]),end='')print(monkeyList[0],'Gain the elect')
if __name__=='__main__':KingElect(7, 2, 3)

测试结果

执行过程

Python 猴子选大王(约瑟夫环)算法相关推荐

  1. 【PHP版·猴子选大王·约瑟夫环】 一堆猴子都有编号,编号是1,2,3 ...m

    一.问题: n只猴子围坐成一个圈,按顺时针方向从1到n编号. 然后从1号猴子开始沿顺时针方向从1开始报数,报到m的猴子出局,再从刚出局猴子的下一个位置重新开始报数, 如此重复,直至剩下一个猴子,它就是 ...

  2. python猴子选大王_sicily 猴子选大王

    题目描述 猴子选大王,有N只猴子,从1-N进行编号.它们按照编号的顺时针方向,排成一个圆圈,然后从第一只猴子开始报数.第一只猴子报1,以后每只猴子报的数字都是它前面猴子所报数字加1.如果一只猴子报的数 ...

  3. 猴子选大王--约瑟夫问题浅析

    猴子选大王--约瑟夫问题浅析 猴子选大王问题是一个十分经典的算法问题,这个问题是这样的:一堆猴子都有编号,编号是1,2,3 ...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N ...

  4. python猴子选大王_“猴子选大王” 算法 python实现

    今天来实现一个约瑟夫环算法,下面是一道新浪的面试题: m只猴子围坐成一个圈,按顺时针方向从1到m编号.然后从1号猴子开始沿顺时针方向从1开始报数,报到n的猴子出局,再从刚出局猴子的下一个位置重新开始报 ...

  5. python猴子选大王讲解_python 【猴子选大王】算法示例

    对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! 今天来实现一个约瑟夫环算法,下面是一道新浪的面试题: m只猴子围坐成一个圈,按顺时针方向从1到m编 ...

  6. python猴子选大王讲解_“猴子选大王”算法python实现

    今天来实现一个约瑟夫环算法,下面是一道新浪的面试题: m只猴子围坐成一个圈,按顺时针方向从1到m编号.然后从1号猴子开始沿顺时针方向从1开始报数,报到n的猴子出局,再从刚出局猴子的下一个位置重新开始报 ...

  7. 蓝桥杯 - 猴子选大王 (约瑟夫问题)

    标题:猴子选大王 一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号.从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始 ...

  8. c语言-猴子选大王-约瑟夫问题(队列,链表,数组)

    猴子选大王 前言:初读此题,根据题意,顺势想到了用刚学的数据结构中的循环队列及循环链表,便想借此来熟练一下新学知识. 题目描述: 一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位 ...

  9. python猴子选大王讲解_关于猴子选大王的面试题

    一群猴子排成一圈,按1,2,...,n依次编号.然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去...,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子 ...

最新文章

  1. PHP 高级编程之多线程
  2. 深入理解Kinect for Windows开发
  3. Qt窗口、控件、文本等的一些常用操作
  4. python 做词云 -jupyter跟随王树义教程学习
  5. wxWidgets:wxTreeCtrl类用法
  6. STL容器的capacity()和reserve()演示-----vector
  7. 前端学习(1702):前端系列javascript之this
  8. ajax 实时进度_如何做好项目进度管理
  9. 面试精讲之面试考点及大厂真题 - 分布式专栏 14 全面了解Kafka的使用与特性
  10. 搭建LAMP环境的过程详细总结
  11. css3导航渐变 滑过显示动画
  12. 节点类型与功能_WKD3874多功能振动测试系统
  13. [解题报告][搜索+剪枝技巧]幻方
  14. 大学生创新创业基础章节答案(李家华等,2021版)
  15. STM32入门开发: LWIP网络协议栈移植(网卡采用DM9000)
  16. 关于设置系统声音的方法
  17. HUAWEI华为MateBook13 2020锐龙版R5集显16G+512GB(HNL-WFQ9)原装出厂系统恢复原厂系统
  18. Python wind导入数据问题总结
  19. 《利用机器学习开发算法交易系统》
  20. PHP后端生成签名后uniapp前端直传华为云OBS记录

热门文章

  1. 中国蚁剑的下载以及安装教程
  2. (附源码)计算机毕业设计SSM教师教学质量评价系统
  3. 电脑使用技巧(按键失灵的几种解决方法)
  4. spm,afni的安装和使用心得
  5. kali攻击wifi、破解wifi密码详细教程(二)
  6. 缠论是一种交易方法炒股是不是一定要学习缠论(利用缠论如何选股)
  7. 【人事管理系统2.0 Linq to SQL】企业人事管理系统
  8. 数据库去掉回车换行符
  9. ICCV2021:Rethinking Coarse-to-Fine Approach in Single Image Deblurring
  10. Docker Volume 使用