简洁之美 -约瑟夫环的python 解法
2024-08-26 13:45:42
问题描述:
约瑟夫环问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到k的那个人出列;他的下一个人又从1开始报数,数到k的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
print ("version: python3.4")
def josephus(n,k):
index=0
people=list(xrange(1,n+1))
while True:
if len(people)==1:
break
index=(index+(k-1))%len(people)
print('kill:',people[index])
del people[index]
print('survive:',people[0])
if __name__=='__main__':
josephus(8,3)
解析一下: 主要用到python中列表(lsit)下标访问特性。之前构思用C++ 实现的时候,需要自己构建双向链表,才能实现。
百度时,发现一个更全的连接。
http://baike.baidu.com/link?url=jGCdWXzolqUD64rlcOTZ9Q4wuo_gl52RKKrAii6hMklSnQ1Us-5wT1mMJrE_YRDRDwgeCMNui0R5KasGhsEHDq#2_8
最新文章
- $.extend()和 $.fn.extend()
- iava多线程详解(2)-成员变量与局部变量访问
- VS 解决方案管理器和 编辑窗口同步 联动
- JQuery 公网 CDN
- AngularJs $http.post 数据后台获取不到数据问题 的解决过程
- php 加密解密方法
- jquery easyui easyui-treegrid 使用异步加载数据
- phpStorm 2016.1.2 最新版激活方法【亲测可用】
- Java 多态,重载,重写
- esri-leaflet入门教程(2)-地图的HelloWorld
- 一道关于call和this的JS面试题
- PROFINET如何实现实时性
- 网络通信实验(1)STM32F4 以太网简介
- Unity 角色移动贴墙行走
- django-pure-pagination 组件使用
- Confluence 6 配置 HTTP 超时设置
- VCS双机+oracle 11gR2+ASM主机名修改
- centos6.5环境下svn服务器和客户端配置实用详解
- Git常见报错及解决方案
- 理解 Redis(4) - 关于 string 的更多命令(SETEX, SETNX, INCR, DECR, MSET...)
热门文章
- SharePoint 2010 最佳实践学习总结------第1章 SharePoint Foundation开发基础
- openstack(liberty): devstack之stack.sh分析
- [转].net 使用NPOI或MyXls把DataTable导出到Excel
- [Hibernate] - Fetching strategies
- nova分析(2)—— nova-all
- css中的继承、层叠、样式优先级机制
- (转)LitJson 遍历key
- erlang的escript脚本
- 想当然是编程最大的坑,记更新删除过期cookie无效有感
- CentOS of MySQL command