Python使用队列实现Josephus问题 – Python量化投资

Python使用队列实现Josephus问题

    Josephus问题,在这个古老的问题中,N个深陷绝境的人一致同意通过以下方式减少生存的人数。他们围坐一圈(位置记为0~N-1)并从第一个人报数,报到M的人会被杀死,

知道最后一个人留下来。传说中Josephus找到了不会被杀死的位置。

   接收N和M的值,打印出被杀死的顺序:

 


if __name__ == "__main__":
    num_people = int(input("深陷绝境的人数:"))
    num_kill = int(input("死亡数字:"))
    i = 1
    people_list = []
    for j in range(num_people):
        people_list.append(j)
    
    while 1:
        if len(people_list) == 1:
            print("  " , people_list.pop(), "live")
            break

        first_person = people_list.pop(0)

        if i != num_kill:
            people_list.append(first_person)
        else:
            i = 0
            print(first_person, end=" ")

        i += 1


 

https://www.cnblogs.com/frisk/p/11639154.html

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论