【发布时间】:2012-11-09 19:53:09
【问题描述】:
假设一家快餐店销售沙拉和汉堡。有 两个收银员。对于收银员 1,需要的秒数 完成一份沙拉均匀分布在 {55,56,...,64,65};以及完成一个任务所需的秒数 汉堡的顺序均匀分布在 {111,112,...,,129,130} 中。 对于收银员 2,完成一项所需的秒数 沙拉的顺序均匀分布在 {65,66,...,74,75} 中;和 完成一个汉堡订单所需的秒数是一致的 分布在 {121,122,...,,139,140}。假设客户 随机到达,但有 r 个客户的平均到达率 每分钟。
考虑两种不同的情况。
• 客户在一个等待 服务线,当有两个收银员中的任何一个有空时, 排队的第一个顾客去收银台接受服务。在 在这种情况下,当顾客到达餐厅时,他要么 如果没有排队,则得到服务,或者在排队结束时等待。
• 顾客分两排等待,每排一个收银员。第一个客户 当且仅当收银员为他的线路提供服务时 变得可用。在这种情况下,当客户到达 餐厅,他加入了较短的队伍。此外,我们强加 条件是,如果客户加入一条线,他将不会移动到 当另一条线变短时,另一条线或另一条收银台 或者当其他收银员空闲时。
在考虑的两种情况下, 收银员只会在顾客下一个顾客时开始服务 他目前正在服务已收到他订购的食物。 (那就是 我们称之为“客户的订单完成”。)
...模拟
对于 两种情况中的每一种以及 r 的几种选择(见下文 描述),您要模拟客户 在 3 小时内到达/等待/获得服务,即, 从时间 0 到时间 180 分钟,您假设在时间 0 那里 没有客户等待,两个收银员都可用;整个 3 小时的时间段将被划分为每个 1 秒的时间段 期间。在每个时间段,以 r/60 的概率,你制作一个新的 客户到达,并且以 1 - r/60 的概率你没有新的 客户到达。这应该会导致平均客户到达 r个客户/分钟的速率,并且到达模型将是合理的 接近上面描述的。在每个时间段,您将制作 你的程序可以处理任何必要的事情。
... 目标和 可交付成果
您需要编写一个程序来调查以下内容。 对于这两个场景中的每一个和每个 r,你要划分 3 小时的模拟时段变为 10 分钟的时段,并且每 客户在时段 i (i ∈ {1,2,...,18}) 期间到达,计算 客户的整体等待时间(即从他到达的时间 在餐厅到他的订单完成时。你需要 打印每个 i 客户到达的平均等待时间 在第 i 期。请注意,如果在第 i 期到达的客户还没有 在三个小时的模拟时间内被送达,然后他的等待 时间不详。所以顾客到达的平均等待时间 在此期间无法计算。在这种情况下,只需打印“not 可用”作为该时段的平均等待时间。
所以,这个程序处理小时、分钟和秒。
最好这样制作一个三维数组:
time[3][60][60]
一共三个小时,60分钟以内,60秒以内。
另外,我在想我应该用这种结构制作一个“for-loop”:
for (time=0;t<10800;t++)
此循环的每次迭代将代表三小时模拟中的一秒(3hx60mx60s=10800 秒)。
伙计们,我在正确的轨道上吗?哪种方法更靠谱。还有其他对这个程序很重要的数组吗?
一如既往地感谢您的帮助!
【问题讨论】:
-
我会象征性地处理它,而不是使用基于刻度的解决方案。
标签: c arrays loops simulation