python实现约瑟夫环问题

python实现约瑟夫环问题#!/usr/bin/python#-*-coding:utf-8-*-definitList(n):list=[]foriinrange(n):list.append(i+1)returnlistdefrun_josephus(list,m):n=len(list)i=0j=0whilen>1:n=len(list)#.

大家好,又见面了,我是你们的朋友全栈君。

#!/usr/bin/python
# -*- coding:utf-8 -*-

def initList(n):
    list = []
    for i in range(n):
        list.append(i+1)
    return list

def run_josephus(list, m):
    n = len(list)
    i = 0
    j = 0
    while n > 1:
        n = len(list)
        # print("i=",i,",j=",j)
        # print("list=",list)
        if i == m-1:
            print(list[j])
            list.remove(list[j])
            i = 0
            n = len(list)
            if j == n:
                j = 0
            continue
        else:
            i = i+1

        if j == n-1:
            j = 0
        else:
            j = j+1

    print(list[0])

m = 3

for n in range(11):
    list = initList(n+1)
    print(list)
    run_josephus(list, m)

'''
n = 3
list = initList(n)
print(list)
run_josephus(list, m)
'''

结果:

[1]
1
[1, 2]
1
2
[1, 2, 3]
3
1
2
[1, 2, 3, 4]
3
2
4
1
[1, 2, 3, 4, 5]
3
1
5
2
4
[1, 2, 3, 4, 5, 6]
3
6
4
2
5
1
[1, 2, 3, 4, 5, 6, 7]
3
6
2
7
5
1
4
[1, 2, 3, 4, 5, 6, 7, 8]
3
6
1
5
2
8
4
7
[1, 2, 3, 4, 5, 6, 7, 8, 9]
3
6
9
4
8
5
2
7
1
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
3
6
9
2
7
1
8
5
10
4
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
3
6
9
1
5
10
4
11
8
2
7

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136125.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • AlertDialog的几种用法

    AlertDialog的几种用法xml代码:java代码:

    2022年7月2日
    25
  • Java面试题及答案2019版(上)

    1、面向对象的特征有哪些方面?答:面向对象的特征主要有以下几个方面:抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继…

    2022年4月9日
    35
  • w ndows7快速关机,windows7怎么快速关机|win7系统实现快速关机的方法

    w ndows7快速关机,windows7怎么快速关机|win7系统实现快速关机的方法windows7系统怎么快速关机?现如今大家追不仅仅追求开机速度,关机速度也是大家所追求的。要不别人都下班了,你的电脑还在等待关闭是不是很不爽呢?windows7怎么快速关机?可以通过设置注册表来实现快速关机。下面小编分享win7系统实现快速关机的方法,有需要的用户可以一起来学习下。具体方法如下:1、点击【开始】-【运行】,输入“regedit”打开注册表编辑器;2、打开注册表编辑器窗口,找到H…

    2025年6月30日
    3
  • Object与json字符串的相互转换[通俗易懂]

    Object与json字符串的相互转换[通俗易懂]第一步:引入fastjson的依赖jar包注:maven项目,直接在pom.xml中进行配置即可。注:如果引入此版本的依赖,导致项目不能启动(报错:找不到启动类);那么可以换一个版本的fastjson即可。给出文字版:<!–fastjson–><dependency><groupId>com.alibaba</…

    2022年10月10日
    4
  • JS数据类型之基本数据类型

    JS数据类型之基本数据类型一、数据类型简介:1.JavaScript(以下简称js)的数据类型分为两种:原始类型(即基本数据类型)和对象类型(即引用数据类型);2.js常用的基本数据类型包括undefined、null、number、boolean、string;3.js的引用数据类型也就是对象类型Object,比如:Object、array、function、data等;二、基本数据类型特点:1.基本…

    2025年9月20日
    7
  • 总结Flash XMLSocket 通信问题

    总结Flash XMLSocket 通信问题

    2021年8月9日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号