任务背景:任意的一个小时里,大约有十名学生会在这一小时里,每人发起2次的打印任务,每次打印1-20页,而打印机有两种模式:
1、以草稿模式打印,每分钟打印十页;
2、以正常模式打印,每分钟打印五页 求两种方案的平均等待时间
分析思路,需要模拟的情况有:在这一小时内打印任务随机生成(任务的页数,任务的等待时间);打印机的属性(打印速度,打印机是否空闲,打印机工作一秒);模拟打印机工作
代码如下
from pythonds.basic.queue import Queue
import random,pdb
class Printer: #打印机
def __init__(self,ppm):
self.pagerate = ppm #打印速度
self.currentTask = None #打印任务
self.timeRemaining = 0 #打印倒计时
def tick(self):
if self.currentTask != None:
self.timeRemaining -= 1 #打印机工作一秒
if self.timeRemaining <= 0:
self.currentTask = None #打印机空闲
def busy(self):
if self.currentTask != None: #打印机工作时
return True
el