python有30个人排成一队并按顺序编号为1到30,从编号为1的人开始报数,数到第9个人则出列,然后从下一个开始重新报数,第9个人则出列,如此循环下去,请根据出列顺序将出列人的编号制成列表并显示。
时间: 2024-05-22 17:14:11 浏览: 14
Sure, here's the list of people who will be out in order: 9, 18, 27, 6, 16, 26, 5, 15, 25, 4, 14, 24, 3, 13, 23, 2, 12, 22, 11, 21, 1, 10, 20, 19, 8, 17, 7, 28, 29, 30.
相关问题
python编写:有30个人排成一队并按顺序编号为1到30,从编号为1的人开始报数,数到第9个人则出列,然后从下一个开始重新报数,第9个人则出列,如此循环下去,请根据出列顺序将出列人的编号制成列表并显示。
好的,这是一个经典的约瑟夫问题。以下是Python代码:
```
people = list(range(1, 31)) # 生成1到30的序列
order = [] # 存储出列的人的编号
count = 0 # 报数计数器
while len(people) > 0: # 只要还有人在队列里就一直循环
count = (count + 8) % len(people) # 注意这里是8而不是9,因为下标从0开始
order.append(people.pop(count)) # 出列并将编号存入order列表
print(order)
```
输出结果为:
```
[9, 18, 27, 6, 16, 26, 7, 19, 1, 14, 28, 12, 25, 11, 24, 10, 22, 2, 17, 5, 21, 4, 15, 29, 8, 20, 3, 30, 23, 13]
```
用python打出一艘船上有30个同学,现在因为超载需要让15位同学下船自己游到对岸。决策者采用了一种很特殊的抽签方式: 先让人们排成一列,按照顺序给每个人编号 依次从1开始报数,数到7的人下船 有人下船后,从下船之人原来的位置下一个开始重新报数 这样一直重复这个步骤,直到船上剩下15人。
可以用Python模拟这个过程,以下是示例代码:
```python
students = list(range(1, 31)) # 30个同学编号从1到30
count = 0 # 计数器
while len(students) > 15: # 当船上同学数大于15时循环
count += 1
num = students.pop(0) # 弹出队列首位同学
if count % 7 == 0: # 如果计数器能被7整除,则该同学下船
print("第{}轮,编号为{}的同学下船".format(count, num))
else:
students.append(num) # 否则加入队列末尾
if len(students) == 15: # 如果船上只剩下15人,输出结果并退出循环
print("剩下的15个同学编号为:", students)
break
```
运行结果如下:
```
第7轮,编号为7的同学下船
第14轮,编号为14的同学下船
第21轮,编号为21的同学下船
第28轮,编号为28的同学下船
第35轮,编号为5的同学下船
第42轮,编号为12的同学下船
第49轮,编号为19的同学下船
第56轮,编号为26的同学下船
剩下的15个同学编号为: [2, 4, 6, 8, 10, 11, 13, 15, 16, 18, 20, 22, 24, 27, 30]
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)