美文网首页
队列实现约瑟夫问题

队列实现约瑟夫问题

作者: 清水秋香 | 来源:发表于2020-02-20 21:10 被阅读0次
  • 约瑟夫问题
    传说犹太人反叛罗马人,落到困境,约瑟夫和39 人决定殉难,坐成一圈儿,报数1~7,报到7的 人由旁边杀死,结果约瑟夫给自己安排了个位置 ,最后活了下来......
    ❖ 模拟程序采用队列来存放所有参加游戏的人名, 按照传递土豆方向从队首排到队尾
    游戏时,队首始终是持有土豆的人
    ❖ 模拟游戏开始,只需要将队首的人出队,随即再 到队尾入队,算是土豆的一次传递
    传递了num次后,将队首的人移除,不再入队 如此反复,直到队列中剩余1人
from pythonds.basic.queue import Queue
def hotPotato(namelist,num):
    simqueue = Queue()
    for name in namelist:
        simqueue.enqueue(name)
    while simqueue.size() > 1:
        for i in range(num):
            #把人取出来添加到队尾
            simqueue.enqueue(simqueue.dequeue())
        #队首为持有土豆的人,把他提出去
        simqueue.dequeue()
    # 剩下最后一个人
    return simqueue.dequeue()

print(hotPotato(["Bill",'David','susan','jane','kent','brad'],7))

相关文章

  • 队列实现约瑟夫问题

    约瑟夫问题传说犹太人反叛罗马人,落到困境,约瑟夫和39 人决定殉难,坐成一圈儿,报数1~7,报到7的 人由旁边杀死...

  • python中队列的应用:约瑟夫斯问题

    著名的约瑟夫斯问题(Josephus Problem)是应用队列(确切地说,是循环队列)的典型案例。约瑟夫斯问题讲...

  • 约瑟夫问题-队列

    如果说我比别人看得更远些,那是因为我站在了巨人的肩上。---牛顿 先前[https://www.jianshu.c...

  • 约瑟夫问题

    约瑟夫问题 一、数组解法 二、循环队列 三、数学解法

  • 约瑟夫问题 -- python实现

    问题描述 N个人围成一个圈, 从第一个人开始报数, 报到M的人出圈, 剩下的人继续从1开始报数, 报到M的人出圈;...

  • Go 队列解决约瑟夫环问题

    约瑟夫环 约瑟夫环是一个数学的应用问题,具体为,已知 n 个人(以编号 1,2,3...n 分别表示)围坐在一张圆...

  • php实现约瑟夫环问题

    题目:一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数, ...

  • Dart实现约瑟夫环问题

    来源: 最近逛博客,看到有人说面试是遇到问约瑟夫环问题。。。 “约瑟夫”是谁?约瑟夫环又是什么鬼?于是不耻下问(不...

  • 用队列解决约瑟夫环问题-Python

    已发布于同名公众号:车湾里 什么是约瑟夫环问题 约瑟夫问题 ,有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学...

  • 2019-05-05 约瑟夫问题STL vector解法

    利用STL 标准模板库中的vector或者list实现约瑟夫问题

网友评论

      本文标题:队列实现约瑟夫问题

      本文链接:https://www.haomeiwen.com/subject/idyfqhtx.html