今天来实现一个约瑟夫环算法,下面是一道新浪的面试题:

m只猴子围坐成一个圈,按顺时针方向从1到m编号。然后从1号猴子开始沿顺时针方向从1开始报数,报到n的猴子出局,再从刚出局猴子的下一个位置重新开始报数,如此重复,直至剩下一个猴子,它就是大王。设计并编写程序,实现如下功能:

(1)要求由用户输入开始时的猴子数m、报数的最后一个数n。

(2)给出当选猴王的初始编号。

这道题是典型的约瑟夫环问题,“猴子选大王”问题。

注意:本实例在python2.7下测试通过,未在python3下测试,有兴趣的同学可以到群里交流

直接上代码:#!/usr/bin/python

# coding=utf-8

# 约瑟夫环算法 之 猴子选王 问题

def king(m,n):

dd = {}

#生成一个字典

p = 1

while(p<=m):

dd[p] = p

p = p+1

j = 1

while(len(dd) >1):

for k,v in dd.items():

if(j == n):

del dd[k]

j = 1

else:

j = j+1

return dd

print king(6,2)

注意:这里用到了字典,而不是list。主要是因为这样可以利用字典的索引的优势

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

python猴子选大王讲解_“猴子选大王”算法python实现相关推荐

  1. 数据结构python语言描述课后答案_《数据结构与算法Python语言描述》习题第二章第三题(python版)...

    1 #!/usr/bib/env python 2 #-*- coding:utf-8 -*- 3 4 """ 5 ADT Rational: #定义有理数的抽象数据类型 ...

  2. 100个python算法超详细讲解:猴子吃桃

    [100个python算法超详细讲解]@谷哥技术 1.问题描述 一个猴子摘了一些桃子,它第一天吃掉了其中的一半然后再多吃了 一个,第二天照此方法又吃掉了剩下桃子的一半加一个,以后每天如 此,直到第十天 ...

  3. python复杂网络点图可视化_数据分析:R与Python怎么选?

    作者介绍 知春里@伟仔 不知名数据科学家. 持续写<数据分析>和<数据产品>的系列文章,欢迎关注. 01 选R还是Python? "球鞋是买阿迪还是买耐克?" ...

  4. java写猴子偷桃问题_猴子偷桃是什么意思

    满意答案 xucw111 2013.04.02 采纳率:42%    等级:11 已帮助:8003人 从字面意思理解就是猴子偷桃子涩!从引申意来讲这个问题就有点严肃了. 从前,有一个美丽的小村庄,名字 ...

  5. python公开课乐博学院_当我学完 Python ,我学会了些什么【乐搏TestPRO】

    本文是本人学完Python后的一遍回顾,加深理解顺便留作手册以备查阅. 学习Python的这几天来,觉得Python还是比较简单,容易上手的,就基本语法而言,但是有些高级特性掌握起来还是有些难度,需要 ...

  6. python快速编辑入门答案_太惨!学Python方法用错,直接从入门到放弃!

    原标题:太惨!学Python方法用错,直接从入门到放弃! 从你开始学习编程的那一刻起,就注定了以后所要走的路-从编程学习者开始,依次经历实习生.程序员.软件工程师.架构师.CTO等职位的磨砺:当你站在 ...

  7. python是语言还是软件_程序开发语言之Python:是追逐还是坚守?

    Python作为计算机程序设计语言的其中一种,最初是被设计用于编写自动化脚本(shell),随着版本的不断更新.语言新功能的添加和机器学习的兴起,Python从2017年开始受到广泛关注. Pytho ...

  8. python中流程图的基本元素_面试干货:成为Python程序员的终极指南!(内附回答)...

    科技行业正以前所未有的速度增长.我们看到市场上发布了新的软件产品. 无论您是初学者还是经验丰富的Python开发人员,机会都是非常多的,如何把握?. 唯一的要求:必须在Python编程面试中使用您的技 ...

  9. 用python实现二分法求平方根_二分法求平方根(Python实现)

    使用二分法(Bisection Method)求平方根. def sqrtBI(x, epsilon): assert x>0, 'X must be non-nagtive, not ' + ...

最新文章

  1. ACM程序设计选修课——1030: Hungar的时尚球场(水题+耐心)
  2. 前端dashboard框架_微前端在网易七鱼的实践
  3. PHP7中php.ini、php-fpm和www.conf的配置
  4. R语言paste函数
  5. java 用户控件_C#自定义控件VS用户控件
  6. Dijkstra算法图文详解和C++代码
  7. 【机器学习】Softmax Regression算法原理与java实现
  8. iOS获取音频设备信息
  9. 百度之星1004度度熊的午饭时光
  10. IDEA java 调用 webservice接口
  11. 5G网络架构 — 接入网/传输网/核心网
  12. 计算机网络 中 网络层
  13. 王宝强代言计算机学校,《破晓屠龙》王宝强代言传奇游戏电脑手机都能玩
  14. 【19调剂】华南师范大学脑科学与康复医学研究院2019年拟接收学术型研究生调剂信息...
  15. python相关pyc文件的编译、运行和反编译
  16. 走向云计算之HBase模式设计及表设计案例
  17. DEJA_VU3D - Cesium功能集 之 090-台风过境实时动画
  18. 金刚java_KgHost
  19. 德国著名的五位数学家
  20. Mysql和 ClickHouse计算时间函数的差值的区别(dateDiff和TIMESTAMPDIFF)

热门文章

  1. delphi操作excel分组
  2. 瑞芯微RV1126使用官方sdk进行音频编码
  3. tensorflow2笔记:简单数据预处理(TF专属)
  4. 【技巧】数据生成器对拍
  5. redis未授权访问漏洞环境搭建复现-ssh免密登录
  6. 配置Tomcat环境
  7. 字体图标从下载到使用
  8. C# WPF DataGrid 分组统计
  9. [进阶]-Python3 异步编程详解(史上最全篇)
  10. word文档中添加打勾、打叉的实现