python实现约瑟夫环问题
python,实现,约瑟夫,问题
2025-04-01 16:27:51 时间
大家好,又见面了,我是你们的朋友全栈君。
#!/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.cn/136125.html原文链接:https://javaforall.cn
相关文章
- Python 进制转换函数及前缀截取
- Python实现商场管理系统
- python计算最大公约数和最小公倍数_python怎么求最大公约数和最小公倍数
- python画图命令
- python微信自动群发脚本_python 微信批量发送消息脚本
- 「Python」面向对象封装案例1——小夏爱跑步、案例扩展
- python构建IP代理池(Proxy Pool)[通俗易懂]
- 用 Python 破解 WiFi 密码,太刺激了!
- python实现卷积操作
- Python二级考试知识点(史上最全)
- python 画图–简单开始及折线图[通俗易懂]
- java浅拷贝和深拷贝的区别_python的浅拷贝和深拷贝
- 自动化神器!Python 批量读取身份证信息写入 Excel
- Python中线程同步与线程锁「建议收藏」
- 如何用python画一朵樱花_如何用python绘制粉色樱花
- Python求解两数之和[通俗易懂]
- 【python】错误SyntaxError: invalid syntax的解决方法总结
- Python/GUI/tkinter/学生信息管理系统源码
- 使用python进行词频分析
- Python 一网打尽<排序算法>之堆排序算法中的树