我想创建一个模拟有两台打印机,我找到每个平均等待时间。我在程序中使用打印机和任务的类。基本上,我将等待时间添加到每个模拟列表并计算平均时间。我的问题是,我得到一个由0错误的分区,所以没有被追加。当我用1台打印机(基本上同样的东西)进行试验时,我没有任何问题。这是我为第二台打印机设置的代码。我为此使用了一个队列。东西不附加到我的列表
if printers == 2:
for currentSecond in range(numSeconds):
if newPrintTask():
task = Task(currentSecond,minSize,maxSize)
printQueue.enqueue(task)
if (not labPrinter1.busy()) and (not labPrinter2.busy()) and \
(not printQueue.is_empty()):
nexttask = printQueue.dequeue()
waitingtimes.append(nexttask.waitTime(currentSecond))
labPrinter1.startNext(nexttask)
elif (not labPrinter1.busy()) and (labPrinter2.busy()) and \
(not printQueue.is_empty()):
nexttask = printQueue.dequeue()
waitingtimes.append(nexttask.waitTime(currentSecond))
labPrinter1.startNext(nexttask)
elif (not labPrinter2.busy()) and (labPrinter1.busy()) and \
(not printQueue.is_empty()):
nexttask = printQueue.dequeue()
waitingtimes.append(nexttask.waitTime(currentSecond))
labPrinter2.startNext(nexttask)
labPrinter1.tick()
labPrinter2.tick()
averageWait = sum(waitingtimes)/len(waitingtimes)
outfile.write("Average Wait %6.2f secs %3d tasks remaining." \
%(averageWait,printQueue.size()))
任何援助将是伟大的!
编辑:我应该提及,无论价值如何,都会发生这种情况。我可以有99-100的页面范围和1的PPM,但我仍然被除以0.
_I'm通过0_得到一个师。这些通常是由于使用'int'而不是'float'。这是你检查的东西吗?另外,你使用Python 2或3? – patrick
@patrick我已经在我的主要方法中设置了一个整数。我正在使用3 – John
什么是变量'waitingtimes'?它是一个列表,一个队列,一个你建立的班级? –