Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- break_intensity = arguments.v
- repair_intensity = mean_time_to_erlang_intensity(arguments.T)
- queue = Queue(1)
- channel = Channel(arguments.m, ERLANG_SHAPE,
- break_intensity, repair_intensity)
- generator = Generator(arguments.l)
- ticks_number = 0
- declined_claims = 0
- while ticks_number < 100000:
- if not channel.is_processed() and channel.broken:
- channel.remove()
- try:
- queue.enqueue(None)
- except Exception as e:
- declined_claims += 1
- if not queue.has_place() and channel.is_processed() and not channel.broken:
- queue.dequeue()
- channel.add()
- if generator.is_generated():
- generator.start_generate()
- generated_claims += 1
- if channel.is_processed() and not channel.broken:
- channel.add()
- else:
- try:
- queue.enqueue(None)
- except Exception as e:
- declined_claims += 1
- channel.tick()
- generator.tick()
- ticks_number += 0.1
- worked = channel.work_time / ticks_number
- repaired = channel.repair_time / ticks_number
- print('Вероятность, что канал свободен: ', 1 - repaired - worked)
- print('Вероятность, что канал занят: ', worked)
- print('Вероятность, что канал ремонтируется: ', repaired)
- print('Относительная пропускная способность: ',
- channel.processed_claims / generated_claims)
- print('Абсолютная пропускная способность: ',
- channel.processed_claims / ticks_number)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement