数组在哪里使用?

时间:2012-11-09 19:53:09

标签: c arrays loops simulation

  

假设一家快餐店出售沙拉和汉堡。有   两个收银员。使用收银台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客户/分钟的比率,到达模型将是合理的   接近上面描述的内容。在每个时间段,你将做   你的程序处理任何必要的事情。

     

...目标和   交付

     

您需要编写一个程序来调查以下内容。   对于两个场景中的每个场景以及每个场景,你要划分   三个小时的模拟时间段,分为10分钟,每个时间段   客户在期间i到达(i∈{1,2,...,18}),计算   客户的整体等待时间(即从他到达的时间)   在餐厅到他的订单完成时。你需要   打印每个客户到达的平均等待时间   期间我请注意,如果到达期间i的客户没有   在三个小时的模拟时间内服役,然后他等待   时间不得而知。所以客户到达的平均等待时间   在这个时期无法计算。在这种情况下,只需打印“不   可用“作为该期间的平均等待时间。

所以,这个程序处理小时,分钟和秒。

最好是制作一个三维数组:

time[3][60][60]

总共三小时,内部60分钟,内部60秒。

或者,我认为我应该用这种结构制作一个“for-loop”:

for (time=0;t<10800;t++)

此循环的每次迭代都将代表三小时模拟中的一秒(3hx60mx60s = 10800秒)。

我这些人在正确的轨道上?哪种方法更合理。是否有其他数组对此程序至关重要?

一如既往地感谢帮助!

1 个答案:

答案 0 :(得分:1)

几乎总是最好将内部时间表示为几秒钟;使用for循环比使用三维数组更容易。一个很好的约定是将其写为

MAX_SECONDS = 3 * 60 * 60
for (t=0;t<MAX_SECONDS;t++)

要查看此项目的数据结构恰当地是一个队列。这可以使用数组实现,但需要一些额外的工作。