约瑟夫生死游戏

Posted wangxy629

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了约瑟夫生死游戏相关的知识,希望对你有一定的参考价值。

"""
30 个人在一条船上,超载,需要 15 人下船。
于是人们排成一队,排队的位置即为他们的编号。
报数,从 1 开始,数到 9 的人下船。
如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了呢?

"""
#   1 2 3 4 5 6 7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

def xunh(x,y,z,lis):
    if x==30:
        while y < 15:
            for i in range(1,31):
                if i in l:
                    z -= 1
                if z == 9:
                    z=0
                    print("%s下船了" % i)
                    lis.append(i)
                    y+=1
                    if y>15:
                        break
                z+=1
n=1
a=0
l=[]
for i in range(1,31):
    if n==9:
        n=0
        print("%s下船了"%i)
        l.append(i)
        a+=1
    n+=1
    xunh(i,a,n,l)

 

以上是关于约瑟夫生死游戏的主要内容,如果未能解决你的问题,请参考以下文章

约瑟夫生死游戏

看小朋友做游戏顿时解决了约瑟夫问题

生死狙击微端unity引擎显示游戏崩溃

约瑟夫问题的推导

约瑟夫环——递推公式详解(leetcode 1823. 找出游戏的获胜者)

好记性不如烂笔头约瑟夫环问题之形象解法(其实就是实实在在的模拟一下游戏过程)