我想創建一個模擬有兩臺打印機,我找到每個平均等待時間。我在程序中使用打印機和任務的類。基本上,我將等待時間添加到每個模擬列表並計算平均時間。我的問題是,我得到一個由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'?它是一個列表,一個隊列,一個你建立的班級? –