约瑟夫环Python基础易懂
时间: 2024-05-13 15:11:26 浏览: 104
python超简单解决约瑟夫环问题
约瑟夫环是一种经典的问题,其描述如下:有n个人围成一圈,从第一个人开始报数,数到m的那个人出列,然后从下一个人重新开始报数,再数到m的那个人出列,以此类推,直到所有的人都出列。这个问题可以用Python进行模拟。
以下是一个Python实现约瑟夫环的基本代码:
```
def josephus(n, m):
people = list(range(1, n+1))
i = 0
while len(people) > 0:
i = (i + m - 1) % len(people)
print("Person %s is out." % people.pop(i))
print("All people are out.")
# 示例调用
josephus(7, 3)
```
在这个代码中,我们首先将所有人的编号存储在列表中。然后我们使用一个while循环,每次模拟出局一个人,并将该人从列表中删除,直到所有人都出局。
阅读全文