python题目不会写求朋友们帮帮忙

15根胡萝卜和15根骨头排成一圈,编号1-30。现在开始玩游戏,从1开始报数,逢九取出,共取出15根送给狐狸。黄同学喜欢吃骨头,请问骨头如何摆放,让最后剩下的全是骨头。
用python怎么写
求求大神教教萌新

这就是约瑟夫环问题

你题目的解答代码如下:

li = [x for x in range(1,31)]
li2 = []
index = -1
for i in range(15):
    index = (index + 9) % len(li)
    li2.append(li.pop(index))
    index = index - 1

print('胡萝卜位置',li2)
print('骨头位置',li)

img

如有帮助,望采纳!谢谢!

实在想不出怎么命名了,就这样吧,

所有位置=[i for i in range(1,31)]
胡萝卜位置=[]
index=0
number=0
while True:
    if len(胡萝卜位置)==15:
        break

    index+=1
    number+=1
    if index>len(所有位置):
        index=1
    if number==9:
        胡萝卜位置.append(所有位置.pop(index-1))
        number=0
        index-=1
print('胡萝卜位置',胡萝卜位置)
print('骨头位置',所有位置)

img