约瑟夫问题python列表_Python实现约瑟夫问题
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数(包括自己在内,如m为1,则变为挨个自杀),数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时我们把编号从0~n-1,最后结果+1即为原问题的解。摘自百度百科
蛮力法求解(模拟算法)
蛮力法理解起来很简单,即用编程语言将该问题进行描述,代码如下:
# -*- coding: UTF-8 -*-
__author__ = 'Wang'
def joseph(total, stop_num, start=0, step=1):
# 约瑟夫问题,模拟算法
# total:总人数
# stop_num:杀多少人后停止
# start:开始数的人
# step:步长
tag_list = [1 for num in range(1, total+1)]
kill_seq = list()
current, step_count, kill_count = start, 1, 0
while kill_count < stop_num:
if step_count < step:
if tag_list[current] != 0:
step_count += 1
elif tag_list[current] != 0:
tag_list[current], step_count, kill_count = 0, 1, kill_count+1
kill_seq.append(current)
current = (current + 1) % total
for index, item in enumerate(tag_list):
if item != 0:
print("留下了的是", index)
print("杀人顺序:", kill_seq)
if __name__ == "__main__":
joseph(1000, 999, 0, 20)
该算法的时间复杂度为Θ(mn),其中m为step步长,n为stop_num杀多少人后结束。 约瑟夫问题最简单是解法是利用数学来进行求解,如可利用模拟算法求出前15个值,找到一个模式,然后利用数学归纳法来证明其在一般情况下的合法性。
约瑟夫问题python列表_Python实现约瑟夫问题相关推荐
- 使用Python列表方法模拟约瑟夫环问题
问题描述: 有n个人围成一圈,从1开始按顺序编号,从第一个人开始从1到k(假设k=3)报数,报到k的人退出圈子,然后圈子缩小,从下一个人继续游戏,问最后留下的是原来的第几号. 之前曾经推送过一个使用P ...
- python列表_Python中列表(list)操作方法汇总
本文实例汇总了Python中关于列表的常用操作方法,供大家参考借鉴.具体方法如下: 一.Python创建列表: sample_list = ['a',1,('a','b')] 二.Python 列表操 ...
- python列表_Python列表抽象
子类别清单 如果您坚持,则可以将列表子类化: class ListContainer(list): def play(self, *args, **kwargs): for item in self: ...
- find python列表_Python基础知识(7)list列表各种操作
如字符串mystr = 'hello wo shi zui shuai de ren jiu shi wo', 以下是常见的操作 一.find 检测 str 是否包含在 mystr中,如果是返回开始的 ...
- python列表_Python列表列表的所有组合
您可以使用 itertools.chain.from_iterable将列表元组展平为列表.示例 – import itertools input = [['a','b'],['c','d'],['e ...
- python异常处理_Python基础语法案例(Fibonacci):选择结构、循环结构、异常处理结构、代码优化...
推荐图书: <Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社,第16次印刷,清华大学出版社2019年度畅销图书 图书购买链接(京东):配 ...
- python生成有条件的列表_python复杂列表生成式教程
本文主要讲解python列表生成式的实际运用实例!希望对初学者有帮助! 1.复杂的列表生成式HTML表格: 注:字符串可以通过%进行格式,用指定的参数化代替%s.字符串的join()方法可以把一lis ...
- python列表嵌套字典取值_Python基础语法:你不得不知的几种变量类型
(点击上方快速关注并设置为星标,一起学Python) 作者:kina_chen來源:简书 01. Python编码Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字, ...
- python列表的实现原理_Python列表对象实现原理
Python 列表对象实现原理 Python 中的列表基于 PyListObject 实现,列表支持元 素的插入.删除.更新操作,因此 PyListObject 是一个变长 对象(列表的长度随着元素的 ...
- python列表字典操作_Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结...
创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_star ...
最新文章
- JavaScript正则表达式test的用法
- QT:KeepAliveOption的应用
- 【luogu P3378 堆】 模板
- 我已经写了48年代码了,我感觉我还能写下去
- 《Python参考手册(第4版•修订版)》——1.4 文件输入和输出
- html转excel有问题,html转excel
- 动画-animation
- Oracle ------ SQLDeveloper中SQL语句格式化快捷键
- Nagios监控数据脚本记录一下。
- 第8章 多项式回归与模型泛化 学习笔记中
- atitit.XML类库选型及object 对象bean 跟json转换方案
- ACC - 简介与解码
- 计算机硬件的基本组成(计算机组成原理3)
- linux系统vsftpd,Linux下vsftpd的配置
- html万花筒图片轮播代码,jQuery实现可拖拽3D万花筒旋转特效
- C# eval()函数浅谈
- Word查找替换详细用法及通配符一览表
- 阅读论文《Deep Bilateral Learning for Real-Time Image Enhancement》
- 阿里云物联网平台搭建
- 考初级计算机证需要考什么,计算机初级证书要考哪些内容
热门文章
- Java中new一个对象的步骤:
- 彩色图像灰度化MFC
- Excel实现Base16-Base64编码转换(SAP SCM)
- linux代码折叠,Ubuntu中gedit中插件的安装之代码折叠插件
- 平衡二叉树的原理及实现
- c预言plc编程语言,【讨论】对于PLC的编程语言STL、LAD、SCL等,你用的哪种语言呢?...
- 普中科技51单片机开发板
- android 分辨率 720 1184 适配,墨迹天气 Android版最新!趋势界面可以横向滑动切换城市!...
- 模拟电路实验 05 - | 集成运算放大器
- 智能客服问题相似度算法设计——第三届魔镜杯大赛第12名解决方案