_IvanaКак вы получили формулу для второго случая?
(Оффтоп)
Прогоните ваш алгоритм в цикле побольше раз и сравните полученные значения с моими формулами.
,
,
, среднее за 1000 итераций:
1) 674.647
2) 552.158
Повторюсь, что программа может содержать ошибку. Была бы рада, если бы кто-то поопытней в программировании промоделировал оба метода.
(Оффтоп)
Брал совсем недавно талончик в расчётный центр по квартплате. Там номер очереди, а на табло высвечивается номер окошка для этого номера по мере освобождения. Наверное, они Вас прочитали и перешли на более эффективный путь обслуживания
У нас такая система давно в тех местах, где очереди медленные и длинные. Например, в очереди на субсидию на оплату услуг ЖКХ.
Недавно такую же штуку сделали в ближайшем сбербанке.
(Оффтоп)
ADDED. Вот лог работы программы для
,
,
с единой очередью. Первый массив -- это состояния касс: число означает, через сколько минут (тиков) касса будет свободна. Второй массив -- это массив покупателей. Они представляются числом минут, требуемых для их обслуживания.
Код:
#######
# tick 1
[0, 0, 0]
[1, 3, 3, 4, 3, 1, 1, 4, 3, 1]
#######
# tick 2
[0, 2, 2]
[4, 3, 1, 1, 4, 3, 1]
#######
# tick 3
[3, 1, 1]
[3, 1, 1, 4, 3, 1]
#######
# tick 4
[2, 0, 0]
[3, 1, 1, 4, 3, 1]
#######
# tick 5
[1, 2, 0]
[1, 4, 3, 1]
#######
# tick 6
[0, 1, 0]
[4, 3, 1]
#######
# tick 7
[3, 0, 2]
[1]
#######
# tick 8
[2, 0, 1]
[]
#######
# tick 9
[1, 0, 0]
[]
9.0
Вроде криминала нет?