曈韵i 2021-05-27 21:58 采纳率: 0%
浏览 20

求解,想问一个问题,现在要编写超市排队的一段程序,这里的排队时间是从到达排队开始计时,不是所有的人同

求解,想问一个问题,现在要编写超市排队的一段程序,这里的排队时间是从到达排队开始计时,不是所有的人同时在排队。这个问题应该怎么解决啊,应该怎么写代码啊。求大佬解答,
  • 写回答

1条回答 默认 最新

  • 喻师傅 大数据领域优质创作者 2024-05-26 09:32
    关注
    
    import random
    
    class Customer:
        def __init__(self, id, arrival_time):
            self.id = id
            self.arrival_time = arrival_time
    
    def simulate_checkout(num_customers):
        checkout_time = 0  # 初始化收银台空闲时间为0
        total_wait_time = 0  # 初始化总等待时间为0
        customers = []  # 存储到达的顾客
    
        for i in range(num_customers):
            arrival_time = random.randint(0, 180) + random.random()  # 随机生成顾客到达时间
            customer = Customer(i+1, arrival_time)
            customers.append(customer)
    
        customers.sort(key=lambda x: x.arrival_time)  # 按到达时间对顾客进行排序
    
        for customer in customers:
            wait_time = max(0, checkout_time - customer.arrival_time)  # 计算顾客等待时间
            total_wait_time += wait_time
            checkout_time = max(checkout_time, customer.arrival_time) + 1 + random.randint(1, 10)  # 更新收银台空闲时间
    
            print(f"顾客{customer.id},到达时间:{customer.arrival_time:.2f},等待时间:{wait_time:.2f},结账时间:{checkout_time:.2f}")
    
        average_wait_time = total_wait_time / num_customers
        print(f"平均等待时间:{average_wait_time:.2f} 分钟")
    
    # 模拟100位客户的结账过程
    simulate_checkout(100)
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
  • ¥15 QQ邮箱过期怎么恢复?
  • ¥15 登录他人的vue项目显示服务器错误
  • ¥15 (标签-android|关键词-app)
  • ¥15 comsol仿真压阻传感器