加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 等待列表时间计算

发布时间:2020-12-15 23:23:27 所属栏目:百科 来源:网络整理
导读:想象一下,我有一个等待列表,队列中有以下内容 Service 1 - 5 minutesService 2 - 10 minutesService 3 - 5 minutesService 4 - 15 minutesService 5 - 20 minutes 如果我有两名工作人员为队列中的这5个客户提供服务,我怎么能估计下一个人在商店走路的等待时
想象一下,我有一个等待列表,队列中有以下内容

Service 1 - 5 minutes
Service 2 - 10 minutes
Service 3 - 5 minutes
Service 4 - 15 minutes
Service 5 - 20 minutes

如果我有两名工作人员为队列中的这5个客户提供服务,我怎么能估计下一个人在商店走路的等待时间.

解决方法

实际上它非常简单 – 它是 “W” queue model as described by Eric Lippert.

设置一个数组两个“员工”成员:

List<int>[] staff = new [] {new List<int>(),new  List<int>()};

定义你的队列:

int[] queue = new int[] {5,10,5,15,20};

然后模拟处理 – 每个后续客户将转到首先完成的服务商:

foreach (int i in queue)
{
    List<int> shortest = staff.OrderBy(s=>s.Sum()).First();
    shortest.Add(i);
}

“下一个”进入的人必须等到第一个服务商免费,这是每个服务客户的总和:

int nextTime = staff.Min(s=>s.Sum());

Console.WriteLine("The wait time for the next customer is {0} minutes",nextTime);

输出:

The wait time for the next customer is 25 minutes.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读