• Python 约瑟夫问题


    约瑟夫问题:有x个人围成一圈,从某个人开始报数,报到y数的人自杀,然后从死掉的这个人的下一个人开始重新报数,循环往复,一直到剩下一个人。

    class Queue():
        # 使用python内置的list,实现简单的队列
        def __init__(self):
            self.queue = []
        
        def inqueue(self,item):      # 入队
            self.queue.append(item)
        
        def outqueue(self):          # 出队
            poped = self.queue.pop(0)
            return poped
        
        def size(self):              # 队列大小
            return len(self.queue)
        
        def __str__(self):           # 打印队列(打印一个对象时,会打印它的__str__函数的返回值。)
            return repr(self.queue)
    
    
    def yue(list,num):
        queue = Queue()
        for li in list:
            queue.inqueue(li)
        print(queue)                  # 打印初始队列
        while queue.size() > 1:        # 只要队列人数大于一
            for i in range(num-1):        # 循环num-1个数
                queue.inqueue(queue.outqueue())    # 队首的人拍到队尾
                print(queue)
            queue.outqueue()           # 数到num的人出队死掉了
        return queue.outqueue()
    
    print(yue(['a','b','c'],3))
  • 相关阅读:
    Celery
    MongoDB-简介
    人工智障
    Flask-session,WTForms,POOL,Websocket通讯原理 -握手,加密解密过程
    web-socket
    flask基础2
    flask的基础1
    项目部署
    nginx简单学习
    redis的安装与配置
  • 原文地址:https://www.cnblogs.com/wztshine/p/12939839.html
Copyright © 2020-2023  润新知