问题描述:

约瑟夫环问题:已知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

最新文章

  1. $.extend()和 $.fn.extend()
  2. iava多线程详解(2)-成员变量与局部变量访问
  3. VS 解决方案管理器和 编辑窗口同步 联动
  4. JQuery 公网 CDN
  5. AngularJs $http.post 数据后台获取不到数据问题 的解决过程
  6. php 加密解密方法
  7. jquery easyui easyui-treegrid 使用异步加载数据
  8. phpStorm 2016.1.2 最新版激活方法【亲测可用】
  9. Java 多态,重载,重写
  10. esri-leaflet入门教程(2)-地图的HelloWorld
  11. 一道关于call和this的JS面试题
  12. PROFINET如何实现实时性
  13. 网络通信实验(1)STM32F4 以太网简介
  14. Unity 角色移动贴墙行走
  15. django-pure-pagination 组件使用
  16. Confluence 6 配置 HTTP 超时设置
  17. VCS双机+oracle 11gR2+ASM主机名修改
  18. centos6.5环境下svn服务器和客户端配置实用详解
  19. Git常见报错及解决方案
  20. 理解 Redis(4) - 关于 string 的更多命令(SETEX, SETNX, INCR, DECR, MSET...)

热门文章

  1. SharePoint 2010 最佳实践学习总结------第1章 SharePoint Foundation开发基础
  2. openstack(liberty): devstack之stack.sh分析
  3. [转].net 使用NPOI或MyXls把DataTable导出到Excel
  4. [Hibernate] - Fetching strategies
  5. nova分析(2)—— nova-all
  6. css中的继承、层叠、样式优先级机制
  7. (转)LitJson 遍历key
  8. erlang的escript脚本
  9. 想当然是编程最大的坑,记更新删除过期cookie无效有感
  10. CentOS of MySQL command